【发布时间】:2012-12-08 03:50:37
【问题描述】:
注意 - 我已经阅读了有关 parseFloat() 的其他帖子,但我没有找到一个很好的解释来解释为什么会出现问题。 (或者我只是不明白)。
这段代码...
var sum = parseFloat("1.001") + parseFloat(".001");
alert(parseFloat(sum));
输出 ...
1.0019999999999998
我了解到,添加 sum.toFixed(2) 将只包含 2 个小数点。
但是,我不能 100% 理解为什么会出现这种长小数。
parseFloat(sum) 是否以二进制形式表示 sum?如果是这样,那么 1.001 不能用二进制表示,因为 1/2^x + ... 永远不能完全等于 .001 或 1/1000?
【问题讨论】:
标签: javascript parsefloat