var a = 2000000000000000000;
a = a - 1; //Doesn't work
a = a + 1; //Doesn't work
但是
a = a * 10; //Works
a = a / 10; //Works
有人可以解释为什么会这样吗?
您可以在浏览器控制台中尝试此示例。
答案 0 :(得分:4)
你正在遇到JavaScript整数计算的极限。
最大整数,JavaScript可以全精度使用 9007199254740992 。
您的号码较大,因此会在内部表示为double
。因此,您会遇到与浮点运算相关的所有问题,您可以在此处看到。