Freigeben über


isnan, _isnan_isnanf

Testet, ob ein Gleitkommawert ein NaN ("Keine Zahl") ist.

Syntax

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 */

Parameter

x
Der zu testende Gleitkommawert.

Rückgabewert

In C geben das isnan Makro und die _isnan _isnanf Funktionen einen Wert ungleich Null zurück, wenn das Argument x ein NaN ist; andernfalls wird 0 zurückgegeben.

In C++ gibt die isnan Vorlagenfunktion zurück true , wenn das Argument x ein NaN ist; andernfalls wird sie zurückgegeben false.

Hinweise

Da ein NaN-Wert nicht gleich sich selbst oder einem anderen NaN-Wert vergleicht, müssen Sie eine dieser Funktionen oder Makros verwenden, um einen zu erkennen. Ein NaN wird generiert, wenn das Ergebnis eines Gleitkommavorgangs nicht im IEEE-754-Gleitkommaformat für den angegebenen Typ dargestellt werden kann. Informationen dazu, wie ein NaN für die Ausgabe dargestellt wird, finden Sie unter printf.

Beim Kompilieren als C++ wird das isnan Makro nicht definiert, und stattdessen wird eine isnan Vorlagenfunktion definiert. Sie verhält sich auf die gleiche Weise wie das Makro, gibt jedoch einen Wert vom Typ bool anstelle einer ganzen Zahl zurück.

Die _isnan Funktionen sind _isnanf microsoftspezifisch. Die _isnanf-Funktion ist nur verfügbar, wenn für x64 kompiliert.

Anforderungen

Routine Erforderlicher Header (C) Erforderlicher Header (C++)
isnan, _isnanf <math.h> <math.h> oder <cmath>
_isnan <float.h> <float.h> oder <cfloat>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Siehe auch

Mathematische Unterstützung und Gleitkommaunterstützung
fpclassify
_fpclass, _fpclassf
isfinite, _finite_finitef
isinf
isnormal