为什么console.log(10150141932135203)在Firefox和Chrome中打印10150141932135204,以及如何处理这些大整数值?

我试图找出为什么我们在Facebook上的客户之一有问题,我追溯到10150141932135203变成10150141932135204给我们意想不到的结果。

$ node > 10150141932135203 10150141932135204 > 10150141932135204 10150141932135204 > 10150141932135205 10150141932135204 > 10150141932135206 10150141932135206 > 10150141932135207 10150141932135208 > 10150141932135208 10150141932135208 > 10150141932135209 10150141932135208 > 10150141932135210 10150141932135210 

我怎样才能处理这个大小的整数?

如果数字大于IEEE 754规范允许的数字(2 53 ),则会像示例所示的那样失去精度。

您可以使用JavaScript的二进制编码十进制库,例如BCMathJs 。

这当然只适用于需要对数字进行算术运算的情况。 如果不是,请将它们保持为string。