NaN 【Not a Number】 非数

概要

NaN(Not a Number)とは、プログラミングにおいて、数値(実数)であることが期待される演算や処理の結果が数値として表せないものになったことを示す特殊な表現。数値表現の標準規格であるIEEE 754に規定があり、多くのプログラミング言語が対応している。

0を0で除算(0/0)したり、0に無限大を乗算したり、負数の対数や平方根を求めようとすると、結果は実数として表すことができないため、代わりにNaNが代入される。数値計算だけでなく、例えば数値として解釈できない文字列を数値に変換しようとした場合などにも用いられる。0以外の数を0で除算した場合などに生じる無限大(Infinity)とは区別される。

NaNは他の何とも同一ではなく、数値との大小も定義できないため、少なくとも一方にNaNを含む比較では、大小や一致(=====など)の結果はすべて偽(false)、不一致(!=や<>など)の結果はすべて真(true)となる。NaN同士の一致(NaN==NaN)も偽、不一致(NaN!=NaN)も真となってしまうため、計算結果がNaNかどうかを比較演算子で調べることはできず、isNaN()、isnan()などのNaNかどうかを判定する専用の関数を用いる。

IEEE 754ではNaNの取り扱い方についてqNaN(quiet NaN)とsNaN(signaling NaN)の二つが定められ、ビットとしての表現形式が違っている。前者はNaNに演算をうことができ(ただし何をっても結果はNaNになる)、後者はNaNに演算をおうとすると例外エラーが発生する。言語によってどちらに対応するかは異なり、例えばJavaScriptのNaNは常にqNaNである。

(2018.10.24更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる