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

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

(2022 年 04 月 10 日公開 / 2022 年 04 月 10 日更新)

整数がどうかを調べる(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 )

Twitterでシェアする
広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。