已知Javascript有2 53 (9007199254740992,或0x20000000000000)作为其Number
对象的最大整数值,为discussed here。我仍然不明白为什么Number(0x20000000000000)+1
会产生0x20000000000000
,但Number(0x20000000000000)+2
会产生0x20000000000002
(9007199254740994)。有人可以解释一下吗?
答案 0 :(得分:2)
在2 ^ 52 = 4,503,599,627,370,496和2 ^ 53 = 9,007,199,254,740,992之间,可表示的数字正好是整数。对于下一个范围,从2 ^ 53到2 ^ 54,所有内容都乘以2,因此可表示的数字是偶数。