Math.round麻烦

时间:2014-04-18 11:36:19

标签: java rounding

我想要舍入到两个小数点,所以我自然会使用:

Double number = Math.round(number*100.0)/100.0 

但我最终得到了很长的输出,有很多小数点。所以我尝试了Math.round()的不同输入,类似于我需要使用的输入,并找到了

Math.round(8.3391700279483738E17) = 833917002794837376
Math.round(8.3391700279483738E17 * 100) / 100.0 = 9.223372036854776E16

这对任何人都有意义吗?

1 个答案:

答案 0 :(得分:2)

您的代码似乎是正确的

Math.round(8.3391700279483738E17)= 833917002794837376

有意义,因为8.3391700279483738E17在数学上意味着8.3391700279483738 * 10 ^ 17或

8339170027948373800而非十进制数字。边际差异较小是由于Delta误差造成的。