运行时
console.log(parseInt("9658921879781125"))

9658921879781124
,小于原始值。
为什么会这样?
答案 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。此上下文中的安全指的是准确表示整数并正确比较它们的能力。