Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at isnan, _isnan, _isnanf.
Tests if a floating-point value is not a number (NAN).
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 nonzero value if the argument x
is a NAN; otherwise they return 0.
In C++, the isnan
template functions return true
if the argument x
is a NAN; otherwise they return false
.
Remarks
The C isnan
macro and the _isnan
and _isnanf
functions test floating-point value x, returning a nonzero value if x is a Not a Number (NAN) value. 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 is not defined, and an isnan
template function is defined instead. It 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
Floating-Point Support
_finite, _finitef
_fpclass, _fpclassf