値が整数かどうかを調べる(Number.isInteger, Number.isSafeInteger)

Number オブジェクトの静的メソッドである Number.isInteger は、対象の値が整数かかどうかを調べ true または false を返します。また Number.isSafeInteger は、対象の値が安全な整数かどうかを調べ true または false を返します。ここでは Number オブジェクトの Number.isInteger メソッドおよび Number.isSafeInteger メソッドの使い方について解説します。

(Last modified: )

整数がどうかを調べる(isInteger)

Number オブジェクトの Number.isInteger メソッドは、対象の値が整数かどうかを調べて true または false を返します。書式は次の通りです。

Number.isInteger(値)

引数に指定した値が整数かどうかを調べます。値が整数であれば true 、それ以外は false を返します。値が数値型ではない場合はすべて false となります。

次のサンプルをみてください。

Number.isInteger(428);
>> true

Number.isInteger(16.5);
>> true

Number.isInteger(16.0);
>> true

Number.isInteger(NaN);
>> false

Number.isInteger(Infinity);
>> false

整数については true 、 浮動小数点数については false 、 NaN や Infinity も false となります。

値が数値型でない場合はすべて false となります。

Number.isInteger('78');
>> false

Number.isInteger(true);
>> false

Number.isInteger(undefined);
>> false

Number.isInteger([10]);
>> false

安全な整数がどうかを調べる(isSafeInteger)

Number オブジェクトの Number.isSafeInteger メソッドは、対象の値が安全な整数かどうかを調べて true または false を返します。書式は次の通りです。

Number.isSafeInteger(値)

引数に指定した値が安全な整数かどうかを調べます。値が安全な整数であれば true 、それ以外は false を返します。値が数値型ではない場合はすべて false となります。

安全な整数とは難しい言葉になりますが正確に IEEE-754 倍精度数として表すことができ、別の値を IEEE-754 倍精度数として表した値と一致することがない値です。具体的には -(253 - 1) 以上 253 - 1 以下の整数値です (-9007199254740991 以上 9007199254740991 以下の整数値です)。

次のサンプルをみてください。

Number.isSafeInteger(87462);
>> true

Number.isSafeInteger(-665212234);
>> false

Number.isSafeInteger(Math.pow(2, 53) - 1);
>> true

Number.isSafeInteger(Math.pow(2, 53));
>> false

安全な整数の範囲内の整数であれば true 、 安全な整数の範囲を超えた場合は false となります。

NaN や Infinity については false 、値が数値型でない場合はすべて false となります。

Number.isSafeInteger(NaN);
>> false

Number.isSafeInteger(Infinity);
>> false

Number.isSafeInteger('1800');
>> false

Number.isSafeInteger(undefined);
>> false

-- --

Number オブジェクトの Number.isInteger メソッドおよび Number.isSafeInteger メソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。