浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

NaNの比較

 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)
  • この記事いいね! (1)