NaNの比較

  • 2019年9月30日
  • 2024年3月7日
  • 言語

NaNはNot a Numberの略であり、その名の通り数字でない値を表します。主に数字として解釈できないものを数字と解釈しようとしたときに現れます。web系の言語で出会うことは稀です。
NaNは歴史的経緯なのか厳密に数学を取り扱っているからかなのかプログラミング領域から見ると少々直感的でない動作をすることが多いです。よくあるのがNaNの比較です。

const a == NaN
a == NaN // false
NaN == NaN // false

NaNであること調べようとした時、NaNオブジェクトとイコールである、と式で書くとfalseが返ってきます。例はJavaScriptですが他言語でも同様です。これはNaNが数字で表せない値、転じて不明な値を表現しているためです。不明同士を比較しても結果は不明です。
NaNであることを調べるためには特定の関数を使います。大体isNaNとかそんな感じの名前で用意されているのでそちらで調べます。

$nan = acos(8);

var_dump($nan); // float(NAN)
var_dump(is_nan($nan)); // bool(true)
>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG