理解Javascript语法浮动行为
可能重复:理解Javascript语法浮动行为,javascript,parsefloat,Javascript,Parsefloat,可能重复: 注意-我已经阅读了关于parseFloat()的其他文章,但是我没有找到一个关于问题发生原因的好解释。(或者我就是不明白) 此代码 var sum = parseFloat("1.001") + parseFloat(".001"); alert(parseFloat(sum)); 输出 1.0019999999999998 我已经读到,添加sum.toFixed(2)将只包含2个小数点 然而,我不完全理解为什么会出现这样长的小数点 parseFloat(sum)是否用二进
注意-我已经阅读了关于parseFloat()的其他文章,但是我没有找到一个关于问题发生原因的好解释。(或者我就是不明白) 此代码
var sum = parseFloat("1.001") + parseFloat(".001");
alert(parseFloat(sum));
输出
1.0019999999999998
我已经读到,添加sum.toFixed(2)
将只包含2个小数点
然而,我不完全理解为什么会出现这样长的小数点
parseFloat(sum)
是否用二进制表示sum
?如果是这样,那么1.001不能用二进制表示,因为1/2^x+。。。永远不能精确地等于.001或1/1000?这不是特定于Javascript的,而是如何在内部表示导致精度错误的
我不会在这里重复这些内容,但是有很多资源可以帮助解释您的示例中发生了什么
这里有一个: