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