带有长十六进制字符串的javascript parseInt错误

时间:2013-11-04 15:24:14

标签: javascript

我试图在javascript中将十六进制字符串解析为十进制数字,但我遇到的东西很奇怪。

十六进制字符串是'27a4b0795a7d749c',我知道由python和windows的calc检查的十进制数是2856602098915439772。但是js的parseInt没有回答正确答案。

这是测试代码:

var hex = '27a4b0795a7d749c';
console.log(hex);
var num = parseInt(hex, 16);
console.log(num);
var hex2 = num.toString(16);
console.log(hex2);

控制台显示屏(我在Windows 64位上使用Chrome 30.0.1599.101 m):

result in chrome console

我在IE9中测试它,它也得到2856602098915439600。但是这是怎么发生的?

1 个答案:

答案 0 :(得分:1)

this answer(引用ECMA规范)最大的Javascript整数为9007199254740992 - 小于预期值。