一尘不染

JavaScript是否支持64位整数?

javascript

我有以下代码:

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

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

我想知道JavaScript是否处理64位整数,还是我做错了什么?


阅读 2979

收藏
2020-05-01

共1个答案

一尘不染

JavaScript使用IEEE-754双精度(64位)格式表示数字。据我了解,这为您提供53位精度,或者15至16个十进制数字。您的数字位数超出了JavaScript所能应付的位数,因此最终得到了一个近似值。

这样并不是真正的“错误处理”,但是如果您需要对大数进行全精度处理,显然这不是很有用。周围有一些可以处理较大数字的JS库,例如BigNumber和Int64。

2020-05-01