javascript parseInt()失败了吗?

时间:2016-03-04 18:46:07

标签: javascript parseint

n = "11004691915666669"
parseInt(n)
parseInt(n, 10)

两个结果都是:11004691915666668 这是一个人。我测试了一些其他值,他们正确转换。这是库中的错误还是有更好的转换方法?

2 个答案:

答案 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的整数范围内的整数值。