可能的重复:
JavaScript 的数学被破坏了吗?
为什么 JS 显示 25.1+61.7+13.2 = 100.00000000000001 ?如果你只是改变数字的位置,比如 13.2+25.1+61.7 = 100,它是固定的。谁能解释一下。
可能的重复:
JavaScript 的数学被破坏了吗?
为什么 JS 显示 25.1+61.7+13.2 = 100.00000000000001 ?如果你只是改变数字的位置,比如 13.2+25.1+61.7 = 100,它是固定的。谁能解释一下。
因为您使用的是浮点运算。 这是对正在发生的事情的解释。
JavaScript 使用 IEEE 754 浮点数学,这是一种 base-2 浮点格式。有许多值无法以该格式精确表示,特别是其中的小数部分,例如x.7
.
这不是编译器问题。这是 JavaScript 表示实数的基本方式的问题。许多其他语言也会有完全相同的问题。
通常,计算机不会以严格的方式处理实数。