n = "11004691915666669"
parseInt(n)
parseInt(n, 10)这两个结果都是: 11004691915666668这是一个偏差。我测试了一些其他值,它们可以正确转换。这是库中的bug,还是有更好的转换方法?
发布于 2016-03-05 02:50:10
参见this SO question for more details。您的值超出了Javascript可以完全准确表示的最大整数。
在引擎盖下,Javascript不理解整数,一切都是浮点。当你遇到非常大的数字时,你会遇到精确度降低的问题。
发布于 2016-03-05 02:54:33
来自给定here的MDN上的Javascript参考。
数字的整数范围定义如下:
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;这就是为什么由于您的数字超过了Javascript预设的整数值,parseInt方法只返回位于上面定义的Javascript中数字的biggestInt范围内的整数值。
https://stackoverflow.com/questions/35803738
复制相似问题