ホームC言語用語集 ≫ NaN (Not-a-Number)

C言語用語集 - NaN (Not-a-Number)

NaN (Not-a-Number: 非数) とは,主に浮動小数点演算の結果が正常な結果でないことを表す特殊な表現形式です.

例えば asin 関数の引数に,区間 [-1, +1] 外の値を渡したり,sqrt 関数の引数に負の値を渡したりすると定義域エラー (domain error) が発生し,その結果として NaN が返されます.※

※ 処理系によっては NaN が生成されない場合があります.

NaN の性質

  1. NaN はどのような浮動小数点数と比較しても等しくならない.(NaNを含む)
  2. NaN を使った算術演算の結果は常に NaN になる.演算途中で NaN が発生した場合,それが伝播していく.(IEC 60559:1989)

qNaN (quiet NaN)

何も浮動小数点例外を生成することなく,ほとんどすべての算術演算を通して伝播する NaN.

sNaN (signaling NaN)

算術オペランドとして現れる場合,浮動小数点例外を発生する NaN.

Cプログラマの必読書

たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.

C実践プログラミング 第3版

C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.


C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.

関連関数