Espacios de nombres
Variantes
Acciones

FP_NORMAL, FP_SUBNORMAL, FP_ZERO, FP_INFINITE, FP_NAN

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)
(C++11)
(C++11)
(C++11)
Constantes de macro
FP_NORMALFP_SUBNORMALFP_ZEROFP_INFINITEFP_NAN
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
#define FP_NORMAL    /*definido por la implementación*/
(desde C++11)
#define FP_SUBNORMAL /*definido por la implementación*/
(desde C++11)
#define FP_ZERO      /*definido por la implementación*/
(desde C++11)
#define FP_INFINITE  /*definido por la implementación*/
(desde C++11)
#define FP_NAN       /*definido por la implementación*/
(desde C++11)

Cada una de las macros FP_NORMAL, FP_SUBNORMAL, FP_ZERO, FP_INFINITE, FP_NAN representan una categoría distinta de números de punto flotante. Todas se expanden a una expresión constante entera.

Constante Explicación
FP_NORMAL Indica que el valor es normal, es decir, no infinito, subnormal, no es un número o cero.
FP_SUBNORMAL Indica que el valor es subnormal.
FP_ZERO Indica que el valor es cero positivo o negativo.
FP_INFINITE Indica que el valor no es representable por el tipo subyacente (infinito positivo o negativo).
FP_NAN Indica que el valor no es un número (NaN).

[editar]Ejemplo

#include <iostream>#include <cmath>#include <cfloat>   constchar* mostrar_clasificacion(double x){switch(std::fpclassify(x)){case FP_INFINITE:return"Inf";case FP_NAN:return"NaN";case FP_NORMAL:return"normal";case FP_SUBNORMAL:return"subnormal";case FP_ZERO:return"cero";default:return"desconocido";}}int main(){std::cout<<"1.0/0.0 es "<< mostrar_clasificacion(1/0.0)<<'\n'<<"0.0/0.0 es "<< mostrar_clasificacion(0.0/0.0)<<'\n'<<"DBL_MIN/2 es "<< mostrar_clasificacion(DBL_MIN/2)<<'\n'<<"-0.0 es "<< mostrar_clasificacion(-0.0)<<'\n'<<"1.0 es "<< mostrar_clasificacion(1.0)<<'\n';}

Salida:

1.0/0.0 es Inf 0.0/0.0 es NaN DBL_MIN/2 es subnormal -0.0 es cero 1.0 es normal

[editar]Véase también

(C++11)
Categoriza el valor de punto flotante dado
(función)[editar]
Documentación de C para FP_categories
close