1

众所周知,Javascript 有 2 53(9007199254740992,或 0x20000000000000)作为其Number对象的最大整数值,如此处所述。我仍然不明白为什么Number(0x20000000000000)+1产生0x20000000000000,但Number(0x20000000000000)+2产生0x20000000000002(9007199254740994)。有人可以解释一下吗?

4

1 回答 1

3

引用自此Wikipedia 文章

在 2^52=4,503,599,627,370,496 和 2^53=9,007,199,254,740,992 之间,可表示的数字恰好是整数。对于下一个范围,从 2^53 到 2^54,一切都乘以 2,因此可表示的数字是偶数。

于 2013-09-17T09:17:38.143 回答