isnan
, , _isnan
, _isnanf
Comprueba si un valor de punto flotante es un NaN ("No un número").
Sintaxis
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 */
Parámetros
x
Valor de punto flotante que se va a probar.
Valor devuelto
En C, la isnan
macro y las _isnan
funciones y _isnanf
devuelven un valor distinto de cero si el argumento x
es naN; de lo contrario, devuelven 0.
En C++, la isnan
función de plantilla devuelve true
si el argumento x
es naN; de lo contrario, devuelve false
.
Comentarios
Dado que un valor NaN no se compara como igual a sí mismo o a cualquier otro valor NaN, para detectar uno, debe usar una de estas funciones o macros. Los valores NaN se generan cuando el resultado de una operación de punto flotante no se puede representar con el formato de punto flotante de IEEE 754 para el tipo especificado. Para obtener información sobre cómo se representa una naN para la salida, vea printf
.
Cuando se compila como C++, no se define la isnan
macro y en su lugar se define una isnan
función de plantilla. Se comporta de la misma manera que la macro, pero devuelve un valor de tipo bool
en lugar de un entero.
Las funciones _isnan
y _isnanf
son específicas de Microsoft. La función _isnanf
solo está disponible cuando se compila para x64.
Requisitos
Routine | Encabezado necesario (C) | Encabezado necesario (C++) |
---|---|---|
isnan , _isnanf |
<math.h> | <math.h> o <cmath> |
_isnan |
<float.h> | <float.h> o <cfloat> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Consulte también
Compatibilidad con cálculos matemáticos y el punto flotante
fpclassify
_fpclass
, _fpclassf
isfinite
, , _finite
, _finitef
isinf
isnormal