JavaScriptの整数は64bitに対応していない[検証]
JavaScriptの整数は仕様では最大53bitまで対応しています。IE11/Chrome/FireFoxの各ブラウザで検証してみました。
53bitの検証
次のコードで50bitから55bitまでの値を設定して検証しました。
var hoge = 1125899906842623 // 50bit; console.log(hoge);
50bit | |
---|---|
元の値 | 1125899906842623 |
IE11 | 1125899906842623 |
Chrome | 1125899906842623 |
FireFox | 1125899906842623 |
51bit | |
---|---|
元の値 | 2251799813685247 |
IE11 | 2251799813685247 |
Chrome | 2251799813685247 |
FireFox | 2251799813685247 |
52bit | |
---|---|
元の値 | 4503599627370495 |
IE11 | 4503599627370495 |
Chrome | 4503599627370495 |
FireFox | 4503599627370495 |
53bit | |
---|---|
元の値 | 9007199254740991 |
IE11 | 9007199254740991 |
Chrome | 9007199254740991 |
FireFox | 9007199254740991 |
54bit | |
---|---|
元の値 | 18014398509481983 |
IE11 | 18014398509481984 |
Chrome | 18014398509481984 |
FireFox | 18014398509481984 |
55bit | |
---|---|
元の値 | 36028797018963967 |
IE11 | 36028797018963970 |
Chrome | 36028797018963970 |
FireFox | 出力されず。以後、console.logが正常に動作しなくなる。(バグ?) |
この検証から53bitまではどのブラウザでも正常に動作します。55bit以降はブラウザによって挙動が異なるようです。ただ、FireFoxはバグかも知れません。
スポンサーリンク
関連記事
公開日:2016年08月13日
記事NO:02124