Tipos de dados de ponto flutuante

Os tipos de dados de ponto flutuante são tipos de dados aproximados. O sistema arredonda o significando se mais precisão do que pode representar estiver presente.

Sintaxe
[ '+' | '-' ] <digit>… [ '.' [ <digit>… ] ] [( 'e' | 'E' ) [ '+' | '-' ] <digit>… ]
[ '+' | '-' ] '.' <digit>… [ ( 'e' | 'E' ) [ '+' | '-' ] <digit>… ]
[ '+' | '-' ] <digit>… [ ',' [ <digit>… ] ] [( 'e' | 'E' ) [ '+' | '-' ] <digit>… ]
[ '+' | '-' ] ',' <digit>… [ ( 'e' | 'E' ) [ '+' | '-' ] <digit>… ]
Descrição
  • Sinal de orientação opcional
  • Zeros à esquerda ilimitados
  • Pelo menos um dígito decimal
  • Ponto decimal ou vírgula, se necessário
  • e ou E opcional introduzindo um expoente seguido por um sinal opcional e um ou mais dígitos
Limitações
  • Nenhuma vírgula separadora de milhares
  • Não há suporte para carregar valores excepcionais, o que significa valores e infinitos do tipo não é um número (NaN)

A sintaxe de valores de ponto flutuante é igual à sintaxe de valores de ponto fixo, aumentada por uma especificação de expoente final opcional.

O separador decimal opcional pode ser seguido por zero ou mais dígitos decimais se houver pelo menos um dígito decimal antes do separador decimal. O separador decimal opcional pode ser seguido por um ou mais dígitos decimais se não houver dígitos decimais antes do separador decimal.

Se não houver nenhum separador decimal explícito, o sistema assume um separador decimal imediatamente após o último dígito decimal.

É possível especificar uma vírgula como um separador usando-a como vírgula decimal.

A potência opcional de expoente 10 é e (minúsculas ou maiúsculas), com um sinal opcional e uma sequência obrigatória de dígitos decimais.

A tabela a seguir descreve a precisão e a representação de ponto flutuante:
Tabela 1. Precisão e representação de vírgula flutuante
Tipo Real Duplo
Representação Ponto flutuante IEEE de 4 bytes Ponto flutuante IEEE de 8 bytes
Maior valor normalizado aproximado ±3.40e+38 ±1.79e+308
Menor valor normalizado aproximado ±1.18e-38 ±3.40e-308
Menor valor não normalizado aproximado ±7.01e-46 ±2.50e-324
As condições a seguir resultam em erros do sistema:
Estouro
O campo excede o maior valor representável (exponente máximo e significando máximo).
Estouro negativo
O número é muito pequeno para aproximar no intervalo não normalizado.