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 matemáticas y punto flotante
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnormal