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