<cfloat> float.h en C/C++ con ejemplos

Este archivo de encabezado consta de valores de coma flotante específicos de la implementación y dependientes de la plataforma . Un punto flotante tiene cuatro partes .

  • Signo
    Su valor puede ser negativo o no negativo.
  • Base
    También se conoce como base de representación exponencial que representa diferentes números con un solo número, es decir, 2 para binario, 10 para decimal, 16 para hexadecimal, …
  • Mantisa
    También se conoce como mantisa . Es una serie de dígitos de la base. El número de dígitos en la serie se conoce como precisión .
  • Exponente
    También se le conoce como característica , es un número entero entre el mínimo emin y el máximo emax .

Valor de coma flotante = ± precisión X exponente base

Constantes de macros

Las macros de biblioteca son valores específicos del hardware para los tipos de punto flotante. FLT implica tipo flotante , DBL implica doble y LDBL implica doble largo , DIG implica dígitos , MANT implica mantisa , EXP implica exponente .

  1. FLT_RADIX: Base para todos los tipos de punto flotante
    Minimum value is 2
  2. FLT_DIG: número de dígitos decimales que se pueden redondear a un tipo de punto flotante y volver a los mismos dígitos decimales, sin pérdida de precisión.
    Minimum value is 6
  3. DBL_DIG o LDBL_DIG: Número de dígitos decimales que se pueden redondear a un punto flotante y viceversa sin cambiar el número de dígitos decimales.
    Minimum value is 10
  4. DECIMAL_DIG: dígitos decimales necesarios para representar el valor de punto flotante
    No Minimum value
  5. FLT_MANT_DIG o DBL_MANT_DIG o LDBL_MANT_DIG: Precisión de mantisa, es decir, el número de dígitos que conforman la mantisa.
    No Minimum value
  6. FLT_MIN_EXP o DBL_MIN_EXP o LDBL_MIN_EXP: valor entero negativo mínimo para el exponente que genera un número de punto flotante normalizado.
    No Minimum value
  7. FLT_MIN_10_EXP o DBL_MIN_10_EXP o LDBL_MIN_10_EXP: valor entero negativo mínimo para el exponente de una expresión de base 10 que generaría un número de punto flotante normalizado.
    Maximum value is -37
  8. FLT_MAX_EXP o DBL_MAX_EXP o LDBL_MAX_EXP: valor entero máximo para el exponente que genera un número de punto flotante normalizado.
    No Minimum value
  9. FLT_MAX_10_EXP o DBL_MAX_10_EXP o LDBL_MAX_10_EXP: valor entero máximo para el exponente de una expresión de base 10 que generaría un número de punto flotante normalizado.
    Minimum value is 37
  10. FLT_MAX o DBL_MAX o LDBL_MAX: número de punto flotante representable finito máximo.
    Minimum value is 1037
  11. FLT_EPSILON: Diferencia entre 1 y el menor valor mayor a 1 representable.
    Maximum value is 10-5
  12. DBL_EPSILON o LDBL_EPSILON: Diferencia entre 1 y el menor valor mayor que 1 representable.
    Maximum value is 10-9
  13. FLT_MIN o DBL_MIN o LDBL_MIN: número de punto flotante positivo mínimo representable.
    Maximum value is 10-37
  14. FLT_ROUNDS: redondea el número de coma flotante.
    Los diferentes valores posibles son:
    -1 : indeterminate
     0 : towards zero
     1 : towards one
     2 : towards positive infinity
     3 : towards negative infinity
    
  15. FLT_EVAL_METHOD: redondea el número de coma flotante.
    Los diferentes valores posibles son:
    -1 : undetermined
     0 : evaluate just to the range 
         and precision of the type
     1 : evaluate float and double as double,
         and long double as long double.
     2 : evaluate all as long double and Other 
         negative values indicate an 
         implementation defined behavior.
    

A continuación se muestra el programa para demostrar el funcionamiento de las constantes de macros en la biblioteca cfloat.

// C++ program to demonstrate working
// of macros constants in cfloat library
  
#include <cfloat>
#include <iostream>
using namespace std;
  
int main()
{
    cout << "FLT_RADIX : "
         << FLT_RADIX << endl;
    cout << "FLT_DIG : "
         << FLT_DIG << endl;
    cout << "DECIMAL_DIG : "
         << DECIMAL_DIG << endl;
    cout << "FLT_MIN_10_EXP : "
         << FLT_MIN_10_EXP << endl;
    cout << "FLT_MAX_EXP : "
         << FLT_MAX_EXP << endl;
    cout << "FLT_MAX_10_EXP : "
         << FLT_MAX_10_EXP << endl;
    cout << "FLT_MAX : "
         << FLT_MAX << endl;
    cout << "FLT_MIN : "
         << FLT_MIN << endl;
    return 0;
}
Salida (dependiente de la máquina):

FLT_RADIX : 2
FLT_DIG : 6
DECIMAL_DIG : 21
FLT_MIN_10_EXP : -37
FLT_MAX_EXP : 128
FLT_MAX_10_EXP : 38
FLT_MAX : 3.40282e+38
FLT_MIN : 1.17549e-38

Referencia: http://www.cplusplus.com/reference/cfloat/

Publicación traducida automáticamente

Artículo escrito por ranadeepika2409 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *