双值返回0

时间:2008-12-14 06:43:45

标签: java division

以下是一个例子:

Double d = (1/3);
System.out.println(d);

这将返回0,而不是0.33333 ......应该。

有人知道吗?

3 个答案:

答案 0 :(得分:38)

这是因为13被视为integers时未另行指定,因此1/3评估为integer {{1}然后将其转换为0 double。要解决此问题,请尝试0(1.0/3)明确声明您正在处理双值。

答案 1 :(得分:12)

如果您想要使用浮点除法int进行划分,则必须将int转换为double

double d = (double)intValue1 / (double)intValue2

(实际上,我认为只有施放intValue2就足以让intValue1自动投放到double。)

答案 2 :(得分:1)

使用 double 而不是 Double ,除非您需要在对象意义上使用这些值。请注意Autoboxing概念