名前空間
変種
操作

NAN

提供: cppreference.com
< c‎ | numeric‎ | math
 
 
 
一般的な数学関数
関数
基本操作
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
指数関数
(C99)
(C99)
(C99)
(C99)
冪関数
(C99)
(C99)
三角関数と双曲線関数
(C99)
(C99)
(C99)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
最も近い整数
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
浮動小数点操作関数
(C99)(C99)
(C99)
(C99)
分類
(C99)
(C99)
(C99)
(C99)(C99)
マクロ定数
NAN
(C99)
 
ヘッダ <math.h> で定義
#define NAN /*implementation defined*/
(C99以上)

マクロ NAN は quiet NaN (QNaN) の値に評価される float 型の定数式に展開されます。 処理系が QNaN をサポートしない場合、このマクロ定数は定義されません。

NaN を表示するために使用される形式は処理系定義です。

目次

[編集] ノート

ペイロードと符号ビットが異なる多数の NaN 値が存在します。 このマクロ NAN によって生成される NaN のペイロードと符号ビットの内容は処理系定義です。

[編集]

NaN の表示に使用される形式と IEEE フォーマットを示します。

#include <stdio.h>
#include <math.h>
#include <stdint.h>
#include <inttypes.h>
#include <string.h>
 
int main(void)
{
    double f = NAN;
    uint64_t fn; memcpy(&fn, &f, sizeof f);
    printf("NAN:   %f %" PRIx64 "\n", f, fn);
}

出力例:

NAN:   nan 7ff8000000000000

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

[編集] 関連項目

(C99)(C99)(C99)
NaN (非数) を返します
(関数) [edit]
(C99)
指定された数値が NaN かどうか調べます
(関数) [edit]