JavaScriptでint/floatの判定をする正しい方法&コード例

例えばこういう判定がしたかったです。

  • 128 => intだね
  •  -512 => intだよ
  • 3.14 => floatだね
  • -6.28 => floatだよ
  • "3.14" => 数値じゃない
  • null => 数値じゃない

この判定には専用関数とか用意されてません。

自前で判定関数を定義しないとダメでした。

その方法がようやく分かったので、
JavaScriptでint/float判定をするコード例など紹介!

数値(変数)がintかどうか判定する

まずはint(数値)かの判定方法について

これは次の条件を満たせばチェック可能です。

  • 1で割った余りが0になる
  • Number型に変換可能かどうか

文章だと少し分かりにくい。

でもがNumber型に変換できるから数値であることは間違いないし、それを1で割った余りが0になるのは整数以外にありえないです。よってint確定ということ

実際のコード例を出すとこういう感じです。

▼ このような関数を作ればOK

▼ 実際に色々な引数を渡した結果

ちなみに isInt(0.0)  とか isInt(2.0)  などの場合は true という判定になります。小数点がついてるからintでないと判定されるわけではありません。

そして isInt('hoge')  とか文字列を渡したとき、 isInt(null)  を渡したときなど、数値でないものも弾くことができるのが利点です。

数値(変数)がfloatかどうか判定する

次はfloatかどうかの判定方法について

これは次条件を満たすかチェックすればOK

  • Number型に変換可能かどうか
  • 1で割った余りが0にならない

まずint判定と同様に、Number型に変換できることで数値かどうかチェック。その上でそれが1で割り切れないならfloatだと判定できるというロジックです。

実際に判定するためのコードを書いてみました。

▼ このような関数作成

▼ 色々な引数を渡した結果

これはfloatを判定する関数なので、int(整数)を渡したときはしっかり false を返してくれます。もしintもfloatに含めたいなら判定処理を工夫してください。

もし数値かどうかだけ判定したいなら Number(n) === n  だけで十分だと思います。試してないけど、それで何とかなるはず

int, floatの判定方法についてまとめ

ここまでを簡単に箇条書き

  • intかどうかの判定
    まずNumber型に変換 ( Number(n) === n  ) でき、なおかつ1で割った余りが0という条件 ( n % 1 === 0  ) を満たせばintだと判定できる
  • floatかどうかの判定
    こちらはNumber型に変換 ( Number(n) === n  ) でき、なおかつ1で割った余りが0でないという条件 ( n % 1 !== 0  ) でfloatだと判定できる

もし間違いなどあればコメントからどうぞ

以上、JavaScriptでのint, floatの判定方法でした。ではまた

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください