次の方法で共有


isnan_isnan_isnanf

浮動小数点値が NaN ("Not a Number") かどうかをテストします。

構文

int isnan(
   /* floating-point */ x
); /* C-only macro */

int _isnan(
   double x
);

int _isnanf(
   float x
); /* x64 only */

template <class T>
bool isnan(
   T x
) throw(); /* C++ only */

パラメーター

x
テストする浮動小数点値。

戻り値

C では、引数xが NaN の場合、isnan マクロと_isnan関数と_isnanf関数は 0 以外の値を返します。それ以外の場合は 0 を返します。

C++ では、引数xが NaN の場合、isnan テンプレート関数はtrueを返します。それ以外の場合は、falseを返します。

解説

NaN 値はそれ自体または他の NaN 値と等しいと比較されないため、1 つを検出するには、これらの関数またはマクロのいずれかを使用する必要があります。 NaN は、浮動小数点演算の結果が指定した型の IEEE-754 浮動小数点形式で表現できない場合に生成されます。 出力用に NaN を表す方法については、 printfを参照してください。

C++ としてコンパイルすると、 isnan マクロは定義されず、代わりに isnan テンプレート関数が定義されます。 マクロと同じように動作しますが、整数ではなく bool 型の値を返します。

_isnan_isnanf は、Microsoft 固有の関数です。 _isnanf 関数は、x64 用にコンパイルするときにのみ使用できます。

要件

ルーチンによって返される値 必須ヘッダー (C) 必須ヘッダー (C++)
isnan, _isnanf <math.h> <math.h> または <cmath>
_isnan <float.h> <float.h> または <cfloat>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

数値演算と浮動小数点のサポート
fpclassify
_fpclass, _fpclassf
isfinite_finite_finitef
isinf
isnormal