我设置了一个将紧凑数据字符串解析为JSON的系统。我使用的是19位数字来存储ID。不幸的是,任何大于17位的数字,parseFloat()都会舍入最后几位数字。

这会破坏整个数据字符串。我可以解决这个问题吗?

例如8246295522085275215变成8246295522085276000。为什么是这样?

http://jsfiddle.net/RobertWHurst/mhZ7Q/

最佳答案

JavaScript只有一种数字类型,即IEEE 754 double floating-point。这意味着您最多可以有52位精度,这比15位小数位还多。

如果您需要的精度更高,则必须使用bignum库或使用字符串。

09-05 10:38