JavaScript parseInt转换有问题

时间:2017-12-14 10:39:34

标签: javascript

运行时



   console.log(parseInt("9658921879781125"))



 它的值为9658921879781124,小于原始值。

为什么会这样?

1 个答案:

答案 0 :(得分:4)

那是因为

9658921879781125 > Number.MAX_SAFE_INTEGER // true

因此尝试使用大于Number.MAX_SAFE_INTEGER

的数字是不安全的
  

MAX_SAFE_INTEGER常量的值为9007199254740991(9,007,199,254,740,991或~9千万亿)。这个数字背后的原因是JavaScript使用IEEE 754中规定的双精度浮点格式数字,并且只能安全地表示 - (2 53 - 1)和2 53 <之间的数字/ sup> - 1。

     

此上下文中的安全指的是准确表示整数并正确比较它们的能力