这是一个例子:
Double d = (1/3);
System.out.println(d);
这将返回 0,而不是 0.33333...。
有人知道吗?
那是因为1and3被视为integers当您没有另外指定时,所以1/3评估为integer 0which 然后转换为double 0. 要修复它,请尝试(1.0/3),或者1D/3明确声明您正在处理双精度值。
如果您有int要使用浮点除法除法的 s ,则必须将 sint转换为 a double:
double d = (double)intValue1 / (double)intValue2
(实际上,我相信只有强制转换intValue2就足以让intValue1自动转换为。)double
除非您需要在对象意义上使用这些值,否则请使用double而不是Double 。注意自动装箱概念