Espacios de nombres
Variantes
Acciones

std::isnan

De cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Funciones matemáticas comunes
Funciones
Operaciones básicas
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones exponenciales
(C++11)
(C++11)
(C++11)
(C++11)
Funciones de potencias
(C++11)
(C++11)
Funciones trigonométricas e hiperbólicas
(C++11)
(C++11)
(C++11)
Funciones de error y gamma
(C++11)
(C++11)
(C++11)
(C++11)
Operaciones de punto flotante del entero más cercano
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones de manipulación de punto flotante
(C++11)(C++11)
(C++11)
(C++11)
Clasificación/comparación
(C++11)
(C++11)
(C++11)
isnan
(C++11)
(C++11)
(C++11)
Constantes de macro
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
bool isnan(float arg );
(1) (desde C++11)
(constexpr since C++23)
bool isnan(double arg );
(2) (desde C++11)
(constexpr since C++23)
bool isnan(longdouble arg );
(3) (desde C++11)
(constexpr since C++23)
bool isnan( TipoEntero arg );
(4) (desde C++11)
(constexpr since C++23)
1-3) Determina si un número de punto flotante dado arg es un valor No es un Número (NaN).
4) Un conjunto de sobrecargas o una plantilla de función que acepta el argumento arg de cualquier tipo entero. Equivalente a (2) (el argumento se convierte a double).

Contenido

[editar]Parámetros

arg - Valor de punto flotante.

[editar]Valor de retorno

true si arg es un NaN; false de lo contrario.

[editar]Notas

Hay muchos valores NaN diferentes con bits de signo y cargas útiles diferentes; véase std::nan y std::numeric_limits::quiet_NaN.

Los valores NaN nunca se comparan iguales a sí mismos o a otros valores NaN. No se requiere copiar un NaN, como indica IEEE-754, para preservar su representación de bits (signo y carga útil), aunque la mayoría de las implementaciones lo hacen.

Otra manera de probar si un valor de punto flotante es NaN es compararlo consigo mismo: bool is_nan(double x){return x != x;}

[editar]Ejemplo

#include <iostream>#include <cmath>#include <cfloat>   int main(){std::cout<<std::boolalpha<<"isnan(NaN) = "<< std::isnan(NAN)<<'\n'<<"isnan(Inf) = "<< std::isnan(INFINITY)<<'\n'<<"isnan(0.0) = "<< std::isnan(0.0)<<'\n'<<"isnan(DBL_MIN/2.0) = "<< std::isnan(DBL_MIN/2.0)<<'\n'<<"isnan(0.0 / 0.0) = "<< std::isnan(0.0/0.0)<<'\n'<<"isnan(Inf - Inf) = "<< std::isnan(INFINITY-INFINITY)<<'\n';}

Salida:

isnan(NaN) = true isnan(Inf) = false isnan(0.0) = false isnan(DBL_MIN/2.0) = false isnan(0.0 / 0.0) = true isnan(Inf - Inf) = true

[editar]Véase también

(C++11)(C++11)(C++11)
No es un Número (NaN)
(función)[editar]
(C++11)
Categoriza el valor de punto flotante dado
(función)[editar]
(C++11)
Comprueba si el número dado tiene un valor finito
(función)[editar]
(C++11)
Comprueba si el número dado es infinito
(función)[editar]
(C++11)
Comprueba si el número dado es normal
(función)[editar]
Comprueba si dos valores de punto flotante son no ordenados
(función)[editar]
close