我试图弄清楚为什么我们在Facebook上的一位客户遇到问题,并将其追溯到编号10150141932135203变成10150141932135204,这给我们带来了意想不到的结果。
$ node
> 10150141932135203
10150141932135204
> 10150141932135204
10150141932135204
> 10150141932135205
10150141932135204
> 10150141932135206
10150141932135206
> 10150141932135207
10150141932135208
> 10150141932135208
10150141932135208
> 10150141932135209
10150141932135208
> 10150141932135210
10150141932135210
如何处理这种大小的整数?
最佳答案
如果数字大于IEEE 754规范允许的数字(253),则它们将失去精度,如您的示例所示。
您可以将Binary Coded Decimal库用于JavaScript,例如BCMathJs。
当然,这仅适用于需要对数字进行算术运算的情况。如果不是,请将其保留为字符串。