javascript - 奇怪的 Javascript 行为 : Floating Point Addition giving the wrong answer

标签 javascript floating-point

<分区>

Possible Duplicate:
Is JavaScript’s math broken?

这看起来真的很愚蠢,但是当运行这个时,它会显示

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 将表单输入的值相加,这只是一个打破它的数字的例子,还有很多其他的..

知道这是怎么回事吗?!?

最佳答案

它与如何将十进制值转换为二进制 float 有关。 1/10在二进制中变成了一个重复的小数,所以这个数字并不能很好地表示出来,重复运算会暴露错误。

为了记录,JavaScript 使用 IEEE-754 float 。其他一些语言也有同样的问题。

如何处理?在你的情况下,也许 toPrecision() .

关于javascript - 奇怪的 Javascript 行为 : Floating Point Addition giving the wrong answer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036662/

相关文章:

Javascript Google map 仅显示 100 个标记中的 10 个。有限制吗?

javascript - 用不同的文本更改类里面的文本

javascript - 对我不明白的javascript的好处

python - 如何打印 float 的全精度 [Python]

python:将 float 转换为字符串时,在点后强制加两个零

delphi - 使 VarToDoubleAsString 使用 Delphi 设置(而不是操作系统设置)

javascript - 关于node.js回调中的 'this'

javascript - 使用正则表达式匹配查找数组中的元素而不遍历数组

c++ - 隐式转换整数计算以在 C++ 中 float

math - float 学有问题吗?