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

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

谁能解释为什么会这样?

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

4

1 回答 1

4

你遇到了 JavaScript 整数演算的极限。

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

您的数字更大,因此将在内部表示为double. 结果,您遇到了与浮点演算相关的所有问题,您可以在此处看到。

于 2013-05-30T10:26:27.607 回答