2

javascript で 16 進文字列を 10 進数に解析しようとしていますが、奇妙なことに遭遇しました。

16 進文字列は、10 進数がpython と Windows の calc によってチェックされる'27a4b0795a7d749c'ことを知っています。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 を使用しています):

結果はクロムコンソール

私はIE9でそれをテストしましたが、それ2856602098915439600も同様です。しかし、これはどのように起こったのですか?

4

1 に答える 1

2

この回答( ECMA仕様を引用)によると、最大のJavascript整数は9007199254740992、期待値よりもはるかに小さいです。

于 2013-11-04T15:28:23.713 に答える