Espacios de nombres
Variantes
Acciones

std::fpclassify

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)
(C++11)(C++11)
(C++11)
Clasificación/comparación
fpclassify
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(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>
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).

Contenido

[editar] Parámetros

arg - Valor de punto flotante.

[editar] 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.

[editar] Ejemplo

#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

[editar] Véase también

(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 NaN
(función) [editar]
(C++11)
Comprueba si el número dado es normal
(función) [editar]
Proporciona una interfaz para consultar las propiedades de todos los tipos numéricos fundamentales.
(plantilla de clase) [editar]
Documentación de C para fpclassify