Number.isSafeInteger()

Number.isSafeInteger() メソッドは、引数として与えた数が safe integer かどうかの真偽値を返します。safe integer は下記を満たす整数です。

  • 正確に IEEE-754 倍精度数として表すことができます。
  • IEEE-754 の表現は、IEEE-754 の表現に適合するように、他の整数を丸めた結果にすることはできません。

例えば、253 - 1 は safe integer です。正確に表現することができ、他の整数は、任意の IEEE-754 丸めモードの下で丸めていません。対照的に、253 は safe integer ではありません。 : IEEE-754 で正確に表現されますが、整数値 253 + 1 は直接 IEEE-754 では表現できません。代わりに四捨五入、0 への丸めによって 253 に丸められます。

safe integer は -(253 - 1) 以上 253 - 1 以下の整数値です。

構文

Number.isSafeInteger(testValue)

引数

testValue
safe integer かどうかテストされる値

Return value

与えられた値が safe integer かどうかを示すBoolean

Number.isSafeInteger(3);                    // true
Number.isSafeInteger(Math.pow(2, 53));      // false
Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
Number.isSafeInteger(NaN);                  // false
Number.isSafeInteger(Infinity);             // false
Number.isSafeInteger('3');                  // false
Number.isSafeInteger(3.1);                  // false
Number.isSafeInteger(3.0);                  // true

ポリフィル

Number.isSafeInteger = Number.isSafeInteger || function (value) {
   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
};

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Number.isSafeInteger の定義
標準 初期定義。
ECMAScript Latest Draft (ECMA-262)
Number.isSafeInteger の定義
ドラフト  

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!
機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) 32 (32) 未サポート (有) 10.0
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート 32.0 (32) 未サポート 未サポート 未サポート

関連情報