可能重复:
这看起来真的很愚蠢,但是当运行它时,它会显示
7.300000000000001 而不是 7.3
<script language="javascript"> function buttonClicked() { var mySum = 1.1 + 1.1 + 1.1 + 0 + 4; alert(mySum); } </script>
什么会导致这个?我在一个非常基本的 aspx 页面上有 javascript。我们实际上是在使用 javascript 将表单输入的值相加,这只是一个打破它的数字的例子,还有很多其他的……
知道这是做什么的吗?!?
原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议
它与如何将十进制值转换为二进制浮点数有关。 1⁄10 在二进制中变成了一个重复的小数,所以这个数字并不能完美地表示出来,重复的运算会暴露错误。
JavaScript 使用 IEEE-754 浮点数,作为记录。其他一些语言也有同样的问题。
如何处理?在你的情况下,也许 toPrecision() 。