在我的控制台浏览器中,我把:
666.66 / 10
我得到了:
66.666
(正如所料)。但是当我把:
6666.66 / 10
我明白了:
666.6659999999999
有人可以解释一下为什么会这样吗?它不应该是:666.666?
答案 0 :(得分:2)
计算机不会像我们想象的那样在基数10中存储数字 - 它位于基数2中,所以像您发现的那样奇怪是常见的。
另一个是0.1 + 0.2
,直觉上等于0.30000000000000004
如果您想安全地划分数字,请先将它们转换为整数,或使用像BigDecimal这样的库