给定以下内容:

.1 + .2 === .3 // false
1 * .3 === .3 // true


...前者不会导致0.3,因为一个或多个操作数不能在IEEE 754双精度浮点中精确表示,因此结果几乎是0.3,但不是完全。

后者为什么返回true。是因为0.3恰好在IEEE 754双精度浮点中可以精确表示吗?

最佳答案

0.3不能精确表示,但1.0是可以表示的。在IEEE四舍五入规则下,任何数字乘以1,都必须返回等于其自身的原始值。

关于javascript - IEEE 754浮点-为什么有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44288644/

10-09 07:16