English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
da biblioteca padrão C float.h O cabeçalho contém um conjunto de constantes dependentes da plataforma relacionadas ao valor de ponto flutuante. Essas constantes foram propostas pelo ANSI C, o que torna o programa mais portátil. Antes de explicar essas constantes, é melhor entender que o número de ponto flutuante é composto por quatro elementos abaixo:
componente | descrição do componente |
---|---|
S | símbolo ( +/- ) |
b | a base exponencial representada2 representado em binário,10 representado em decimal,16 representado em hexadecimal, etc... |
e | exponencial, um número entre o valor mínimo emin e o valor máximo emax entre os inteiros. |
p | precisão, o número de dígitos significativos da base b |
com base no acima 4 um componente, um valor de ponto flutuante conforme a seguir:
flutuante-point = ( S ) p x be
ou}}
flutuante-ponto = (+/-) precisão x baseexponent
Os seguintes valores são específicos da implementação e são definidos por meio de instruções #define, e todos devem ser iguais ou maiores que os valores fornecidos abaixo. Observe que todos os exemplos FLT se referem ao tipo float, DBL ao tipo double e LDBL ao tipo long double.
Macro | Descrição |
---|---|
FLT_ROUNDS | Define o modo de arredondamento da adição de ponto flutuante, que pode ser qualquer um dos seguintes valores:
|
FLT_RADIX 2 | Essa macro define a base para a representação do expoente. Base 2 representa binário, base 10 representa decimal, base 16 representa hexadecimal. |
FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG | Essas macros definem o número de dígitos na base FLT_RADIX. |
FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 | Essas macros definem o valor máximo de número decimal arredondado que não muda a representação (base 10)。 |
FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP | Essas macros definem o valor inteiro negativo mais pequeno do expoente para a base FLT_RADIX. |
FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 | Essas macros definem o expoente para a base 10 é o valor inteiro negativo mais pequeno do expoente. |
FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP | Essas macros definem o valor inteiro máximo do expoente para a base FLT_RADIX. |
FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 | Essas macros definem o expoente para a base 10 é o valor inteiro máximo do expoente. |
FLT_MAX 1E+37 DBL_MAX 1E+37 LDBL_MAX 1E+37 | Essas macros definem o maior valor finito de ponto flutuante. |
FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 | Essas macros definem o menor número significativo representável. |
FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 | Essas macros definem o valor mais pequeno de ponto flutuante. |
Abaixo está um exemplo que demonstra o uso de algumas constantes definidas no arquivo float.h.
#include <stdio.h> #include <float.h> int main() { printf("O valor máximo do float = %.10E\n", FLT_MAX); printf("O valor mínimo do float = %.10e\n", FLT_MIN); printf("O número de dígitos do número = %.10e\n", FLT_MANT_DIG); }
Vamos compilar e executar o programa acima, o que produzirá o seguinte resultado:
O valor máximo do float = 3.4028234664e+38 O valor mínimo do float = 1.1754943508e-38 O número de dígitos do número = 7.2996655210e-312