std::fpclassify
De cppreference.com
<tbody>
</tbody>
| Definido en el archivo de encabezado <cmath>
|
||
int fpclassify( float arg ); |
(1) | (desde C++11) (constexpr since C++23) |
int fpclassify( double arg ); |
(2) | (desde C++11) (constexpr since C++23) |
int fpclassify( long double arg ); |
(3) | (desde C++11) (constexpr since C++23) |
int fpclassify( TipoEntero arg ); |
(4) | (desde C++11) (constexpr since C++23) |
1-3) Categoriza el valor de punto flotante
arg en una de las siguientes categorías: cero, subnormal, normal, infinito, NAN, o una categoría definida por la implementación. 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).Parámetros
| arg | - | Valor de punto flotante. |
Valor de retorno
Uno de FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO o un tipo definido por la implementación, especificando la categoría de arg.
Ejemplo
Ejecuta este código
#include <iostream>
#include <cmath>
#include <cfloat>
const char* 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
Véase también
(C++11) |
Comprueba si el número dado tiene un valor finito (función) |
(C++11) |
Comprueba si el número dado es infinito (función) |
(C++11) |
Comprueba si el número dado es NaN (función) |
(C++11) |
Comprueba si el número dado es normal (función) |
| Proporciona una interfaz para consultar las propiedades de todos los tipos numéricos fundamentales. (plantilla de clase) | |
Documentación de C para fpclassify
| |