名前空間
変種
操作

isnan

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)
isnan
(C99)
(C99)
(C23)
誤差関数とガンマ関数
(C99)
(C99)
(C99)
(C99)
マクロ定数
特殊な浮動小数点値
(C99)(C23)
引数と戻り値
エラーハンドリング
高速演算インジケータ
 
ヘッダー <math.h> で定義
#define isnan(arg) /* 実装定義 */
(C99以降)

指定された浮動小数点数 arg が Not-a-Number (NaN) 値であるかどうかを判定します。このマクロは整数値を返します。

FLT_EVAL_METHOD は無視されます。引数がその型よりも大きな範囲と精度で評価された場合でも、まず意味論的な型に変換され、その型に基づいて分類が行われます(評価型は NaN をサポートするが、意味論的な型はサポートしない場合に重要となります)。

目次

[編集] パラメータ

arg - floating-point value

[編集] 戻り値

arg が NaN の場合はゼロ以外の整数値、それ以外の場合は 0 を返します。

[編集] 注釈

異なる符号ビットとペイロードを持つ多くの NaN 値が存在します。詳細は nan を参照してください。

NaN 値は、それ自身と比較しても、他の NaN 値と比較しても、決して等しくなりません。NaN のコピーは、そのビットパターンを変更する可能性があります。

浮動小数点値が NaN であるかどうかをテストするもう一つの方法は、それ自身と比較することです。bool is_nan(double x) { return x != x; }

[編集]

#include <float.h>
#include <math.h>
#include <stdio.h>
 
int main(void)
{
    printf("isnan(NAN)         = %d\n", isnan(NAN));
    printf("isnan(INFINITY)    = %d\n", isnan(INFINITY));
    printf("isnan(0.0)         = %d\n", isnan(0.0));
    printf("isnan(DBL_MIN/2.0) = %d\n", isnan(DBL_MIN / 2.0));
    printf("isnan(0.0 / 0.0)   = %d\n", isnan(0.0 / 0.0));
    printf("isnan(Inf - Inf)   = %d\n", isnan(INFINITY - INFINITY));
}

実行結果の例

isnan(NAN)         = 1
isnan(INFINITY)    = 0
isnan(0.0)         = 0
isnan(DBL_MIN/2.0) = 0
isnan(0.0 / 0.0)   = 1
isnan(Inf - Inf)   = 1

[編集] 参考文献

  • C23標準 (ISO/IEC 9899:2024)
  • 7.12.3.4 The isnan macro (p: TBD)
  • C17標準 (ISO/IEC 9899:2018)
  • 7.12.3.4 The isnan macro (p: TBD)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.12.3.4 The isnan macro (p: 236-237)
  • C99標準 (ISO/IEC 9899:1999)
  • 7.12.3.4 The isnan macro (p: 217)

[編集] 関連項目

(C99)(C99)(C99)
NaN(非数)を返す
(関数) [編集]
与えられた浮動小数点値を分類する
(関数マクロ) [編集]
与えられた数値が有限値かチェックする
(関数マクロ) [編集]
(C99)
与えられた数値が無限大かチェックする
(関数マクロ) [編集]
与えられた数値が正規化数かチェックする
(関数マクロ) [編集]
2つの浮動小数点数値が順序付けられていないかチェックする
(関数マクロ) [編集]
English 日本語 中文(简体) 中文(繁體)