JavaScript无法处理64位整数,可以吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (12)

我想知道JavaScript是不是错误处理64位整数或者我做错了什么?

我有以下代码:

var str = "0x4000000000000000";   //4611686018427387904 decimal
var val = parseInt(str);
alert(val);

我得到这个值:“4611686018427388000”,它是0x4000000000000060

提问于
用户回答回答于

JavaScript代表使用IEEE-754双精度(64位)格式的数字。据我了解,这给你53位精度,或十五至十六位十进制数字。你的号码比JavaScript所能处理的位数更多,所以你最终得到了一个近似值。

这并不是真正的“mishandling”,但显然,如果您需要大数量的完全精确度,它并不是非常有用。有几个JS库可以处理更大的数字,例如BigNumberInt64

扫码关注云+社区