Constantes de ponto flutuante C++
As constantes de ponto flutuante especificam os valores que devem ter uma parte fracionária. Esses valores contêm pontos decimais (.) e podem conter expoentes.
As constantes de ponto flutuante têm uma "mantissa", que especifica o valor de número, um "expoente", que especifica o valor de número e um sufixo opcional que especifica o tipo de constante. A mantissa é especificada como uma sequência de dígitos seguida por um ponto final, seguidos por uma sequência opcional de dígitos que representa a parte fracionária do número. Por exemplo:
18.46
38.
O expoente, se presente, especifica a magnitude do número como uma potência de 10, como mostrado no seguinte exemplo:
18.46e0 // 18.46
18.46e1 // 184.6
O expoente pode ser especificado usando e ou E, que têm o mesmo significado, seguido por um sinal opcional (+ ou -) ou uma sequência de dígitos. Se um expoente estiver presente, o ponto decimal à direita é desnecessário em números inteiros como 18E0.
As constantes de ponto flutuante tem como padrão o tipo double. Usando os sufixos f ou l (ou F ou L — o sufixo não diferencia maiúsculas e minúsculas), a constante pode ser especificada como float ou long double, respectivamente.
Embora long double e double tenham a mesma representação, eles não têm o mesmo tipo. Por exemplo, você pode ter funções sobrecarregadas como
void func( double );
e
void func( long double );