这是一个例子:
Double d = (1/3); System.out.println(d);
这将返回0,而不是0.33333 ......应该如此.
有人知道吗?
那是因为1
并且当你没有另外指定时3
被视为integers
,所以1/3
评估integer
0
然后将其转换为double
0
.要修复它,请尝试(1.0/3)
或者1D/3
明确说明您正在处理双值.
如果你int
想使用浮点除法进行划分,你必须将其int
转换为double
:
double d = (double)intValue1 / (double)intValue2
(实际上,我认为只有铸造intValue2
应该足以自动intValue1
铸造double
.)