2

我正在尝试将十六进制字符串解析为 javascript 中的十进制数,但我遇到了一些奇怪的事情。

十六进制字符串是'27a4b0795a7d749c',我知道十进制数是2856602098915439772由 python 和 windows 的 calc 检查的。但是 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):

导致 chrome 控制台

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

4

1 回答 1

2

根据这个答案(引用 ECMA 规范),最大的 Javascript 整数是9007199254740992- 远低于您的预期值。

于 2013-11-04T15:28:23.713 回答