JavaScript加法和减法不起作用,但乘法和除法有效

时间:2013-05-30 10:22:51

标签: javascript

var a = 2000000000000000000;
a = a - 1; //Doesn't work
a = a + 1; //Doesn't work

但是

a = a * 10; //Works
a = a / 10; //Works

有人可以解释为什么会这样吗?

您可以在浏览器控制台中尝试此示例。

1 个答案:

答案 0 :(得分:4)

你正在遇到JavaScript整数计算的极限。

最大整数,JavaScript可以全精度使用 9007199254740992

您的号码较大,因此会在内部表示为double。因此,您会遇到与浮点运算相关的所有问题,您可以在此处看到。