English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Linguagem C

Controle de Fluxo de Linguagem C

Função C

Array C

Ponteiro C

String C

Estrutura de Linguagem C

Arquivo de Linguagem C

C Outros

Manual de Referência do Linguagem C

Biblioteca Padrão <float.h> C

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:

componentedescrição do componente
Ssímbolo ( +/- )
ba base exponencial representada2 representado em binário,10 representado em decimal,16 representado em hexadecimal, etc...
eexponencial, um número entre o valor mínimo emin e o valor máximo emax entre os inteiros.
pprecisã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

Macro da biblioteca

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.

MacroDescrição
FLT_ROUNDSDefine o modo de arredondamento da adição de ponto flutuante, que pode ser qualquer um dos seguintes valores:
  • -1 - não pode ser determinado

  • 0 - tende a zero

  • 1 - arredonda para o valor mais próximo

  • 2 - tende ao infinito positivo

  • 3 - tende ao infinito negativo

FLT_RADIX 2Essa 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.

Exemplo Online

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