JS数字函数最后加起来为零

时间:2017-07-20 11:05:14

标签: javascript

我正在使用Number() JS函数,它应该将字符串值转换为数字。

它适用于小数字。对于大的 - 它开始使用零的替换值,如图所示:

enter image description here

是否有解决此问题的方法?

2 个答案:

答案 0 :(得分:2)

这是因为您使用的数字大于Number.MAX_SAFE_INTEGER且Javascript不保证正确表示这些数字

使用Number.isSafeInteger检查:

> Number.isSafeInteger(Number('111111111111111111'))
< false

答案 1 :(得分:2)

在JS中,最大的整数值是9007199254740991也就是说,所有正整数和负整数不应分别超过-90071992547409919007199254740991

同样定义为2 53 -1。

&#13;
&#13;
console.log(Number.isSafeInteger(parseInt('1111111111')))
console.log(parseInt('1111111111'))
console.log(Number.isSafeInteger(parseInt('111111111111111111')))
console.log(parseInt('111111111111111111'))
//9007199254740991 - The largest JS Number
console.log(Number.isSafeInteger(parseInt('9007199254740991')))
&#13;
&#13;
&#13;