Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Tests if a floating-point value is a NaN ("Not a Number").
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 */
Parameters
x
The floating-point value to test.
Return value
In C, the isnan macro and the _isnan and _isnanf functions return a non-zero value if the argument x is a NaN; otherwise they return 0.
In C++, the isnan template function returns true if the argument x is a NaN; otherwise it returns false.
Remarks
Because a NaN value doesn't compare as equal to itself or to any other NaN value, to detect one, you must use one of these functions or macros. A NaN is generated when the result of a floating-point operation can't be represented in IEEE-754 floating-point format for the specified type. For information about how a NaN is represented for output, see printf.
When compiled as C++, the isnan macro isn't defined, and an isnan template function is defined instead. It behaves the same way as the macro, but returns a value of type bool instead of an integer.
The _isnan and _isnanf functions are Microsoft-specific. The _isnanf function is only available when compiled for x64.
Requirements
| Routine | Required header (C) | Required header (C++) |
|---|---|---|
isnan, _isnanf |
<math.h> | <math.h> or <cmath> |
_isnan |
<float.h> | <float.h> or <cfloat> |
For more compatibility information, see Compatibility.
See also
Math and floating-point support
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal