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