名前空間
変種
操作

NAN

From cppreference.com
< c‎ | numeric‎ | math
 
 
 
共通の数学関数
関数
基本的な数学関数
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
最大/最小演算
(C99)
(C99)
指数関数
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
べき乗関数
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
三角関数と双曲線関数
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
最も近い整数浮動小数点数
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
浮動小数点操作
(C99)(C99)
(C99)(C23)
(C99)
縮小演算
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
量子および量子指数
Decimal再エンコーディング関数
総順序およびペイロード関数
分類
(C99)
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
NANDEC_NAN
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <math.h> で定義
#define NAN /*実装依存*/
(C99以降)

マクロNANは、float型の定数式に展開され、クワイエット・ナ・ナン(QNaN)値を評価します。実装がQNaNをサポートしない場合、このマクロ定数は定義されません。

NaNの表示に使用されるスタイルは実装依存です。

目次

[編集] 注意

ペイロードや符号ビットによって区別される多くの異なるNaN値が存在します。マクロNANによって生成されるNaNのペイロードの内容と符号ビットは実装依存です。

[編集]

NaNの表示スタイルとIEEEフォーマットを示します。

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

実行結果の例

NAN:   nan 7ff8000000000000

[編集] 参照

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12/5 NAN (p: TBD)
  • F.10/11/13 NAN (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12/5 NAN (p: 232)
  • F.10/11/13 NAN (p: 518)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12/5 NAN (p: 213)
  • F.9/11/13 NAN (p: 455)

[編集] 関連項目

(C99)(C99)(C99)
NaN(非数)を返す
(関数) [編集]
(C99)
与えられた数値が NaN かチェックする
(関数マクロ) [編集]
English 日本語 中文(简体) 中文(繁體)