Os tipos de ponto-flutuante representam números racionais. Recebe este nome, em contraste ao tipo inteiro, que é um ponto-fixo, pois seu ponto decimal pode “flutuar”. Mas deve-se lembrar que o valor de uma variável do tipo ponto-flutuante, assim como tudo na computação (ou em outros sistemas digitais), é representado por bits (e estes são finitos), ou seja, há um limite de precisão e de valores que um ponto-flutuante pode representar. Simplificando, uma variável do tipo ponto-flutuante não pode representar todo e qualquer número racional que se imagine, sendo a limitação do computador a causa disto.
Várias representações foram propostas na computação para lidar com números fracionários. O padrão IEEE 754 é o mais amplamente utilizado atualmente. A utilização de padrões como este, por exemplo, favorecem a portabilidade de programas de uma máquina para outra. As operações realizadas em variáveis do tipo ponto-flutuante são idênticas em duas máquinas que suportam o padrão IEEE 754, torna-se então de considerável facilidade portar um programa entre estas duas máquinas.
Assim como os inteiros, os pontos-flutuante podem ser modificados quanto ao tamanho (e, consequêntemente, quanto à precisão). Eles podem ser: float (precisão simples), double (precisão dupla) e long double (precisão estendida). Seus tamanhos dependem da implementação. No compilador VC++ um float ocupa 32 bits, um double ocupa 64 bits e um long double é idêntico a um double. Veja exemplos de declarações de pontos-flutuante.
Literais de ponto-flutuante
Assim como nos tipos inteiros, existem diferentes formas de representar números de ponto-flutuante no C++.
Por padrão, os literais de ponto-flutuante representam dados do tipo double. Caso seja necessário representar dados do tipo float, deve-se preceder o literal por f ou F. Algumas vezes exemplos são mais relevantes que explicações teóricas, esta é uma delas. Vejamos exemplos:
Créditos : TaTu
OBS: Qualquer Bug me avise pois modifiquei algumas coisas.
Atenciosamente,
ex_SheL$
Várias representações foram propostas na computação para lidar com números fracionários. O padrão IEEE 754 é o mais amplamente utilizado atualmente. A utilização de padrões como este, por exemplo, favorecem a portabilidade de programas de uma máquina para outra. As operações realizadas em variáveis do tipo ponto-flutuante são idênticas em duas máquinas que suportam o padrão IEEE 754, torna-se então de considerável facilidade portar um programa entre estas duas máquinas.
Assim como os inteiros, os pontos-flutuante podem ser modificados quanto ao tamanho (e, consequêntemente, quanto à precisão). Eles podem ser: float (precisão simples), double (precisão dupla) e long double (precisão estendida). Seus tamanhos dependem da implementação. No compilador VC++ um float ocupa 32 bits, um double ocupa 64 bits e um long double é idêntico a um double. Veja exemplos de declarações de pontos-flutuante.
1.
float a;
2.
double b;
3.
long double c; //Idêntico a b
float a;
2.
double b;
3.
long double c; //Idêntico a b
Assim como nos tipos inteiros, existem diferentes formas de representar números de ponto-flutuante no C++.
Por padrão, os literais de ponto-flutuante representam dados do tipo double. Caso seja necessário representar dados do tipo float, deve-se preceder o literal por f ou F. Algumas vezes exemplos são mais relevantes que explicações teóricas, esta é uma delas. Vejamos exemplos:
1.
double a = 1.23; // 1.23
2.
double b = .23; // 0.23
3.
double c = 0.23; // 0.23
4.
double d = 1.; // 1.0
5.
double e = 1.0; // 1.0
6.
double f = 1.2e10; // 1.2 * 10 ^ 10
7.
double g = 1.23e-15; // 1.23 * 10 ^ (-15)
8.
9.
float h = 2.0f; // 2.0 (nestes dois casos os literais retornam floats)
10.
float i = 3.0F; // 3.0
double a = 1.23; // 1.23
2.
double b = .23; // 0.23
3.
double c = 0.23; // 0.23
4.
double d = 1.; // 1.0
5.
double e = 1.0; // 1.0
6.
double f = 1.2e10; // 1.2 * 10 ^ 10
7.
double g = 1.23e-15; // 1.23 * 10 ^ (-15)
8.
9.
float h = 2.0f; // 2.0 (nestes dois casos os literais retornam floats)
10.
float i = 3.0F; // 3.0
OBS: Qualquer Bug me avise pois modifiquei algumas coisas.
Atenciosamente,
ex_SheL$