n = "11004691915666669"
parseInt(n)
parseInt(n, 10)
两个结果都是:11004691915666668 这是一个人。我测试了一些其他值,他们正确转换。这是库中的错误还是有更好的转换方法?
答案 0 :(得分:3)
见this SO question for more details。您的值超出了Javascript可以完全准确表示的最大整数。
引擎盖下Javascript并不了解整数,一切都是浮点数。当你达到非常大的数字时,你会达到降低的准确度。
答案 1 :(得分:0)
来自MDN的Javascript参考here。
Number的整数范围定义如下:
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;
这就是为什么因为你的数字超过了Javascript预设的maxInt值,所以parseInt方法只返回如上定义的Javascript中Number的整数范围内的整数值。