User Tools

Site Tools


a_familia_de_tipos_real

Os tipos reais compreendem aqueles representados internamente pelo computador e interpretados como sendo de ponto flutuante. Apesar de estarmos no Brasil, em Pascal os números em ponto flutuante são escritos com um ponto, não com vírgula.

Assim como no caso dos ordinais, variam basicamente na quantidade de bytes usada para cada endereço de memória e na representação de sinais, seja no expoente ou na mantissa.

Abaixo apresenta-se uma lista com os tipos reais e suas faixas de valores, conforme o guia de referência em sua versão de dezembro de 2008.

Tipo Faixa dos limites Tamanho em bytes
real depende da plataforma 4 ou 8
single 1.5E-45 .. 3.4E38 4
double 5.0E-324 .. 1.7E308 8
extended 1.9E-4932 .. 1.1E4932 10
comp -2E64+1 .. 2E63-1 8
currency -922337203685477.5808 .. 922337203685477.5807 19-20

Aqui reside uma das raras exceções da checagem de tipo da linguagem, pois uma variável do tipo real pode receber o resultado de uma expressão aritmética que retorne inteiro. Neste caso, antes da operação, o computador faz a conversão do inteiro para um formato em ponto flutuante.

Exemplo:

program type_real;
 var
    a, b, c: real;
    d: integer;
 begin
    a := 14.5;
    b := sqrt(10); // b eh igual a raiz de 10
    d := 10; / d eh inteiro
    c := a + d; // c eh a soma de um real com inteiro
    writeln('a=', a, ' b=', b, ' c=', c, ' d=', d);
    writeln;
    writeln('a=', a:0:2); // ajusta para duas casas decimais apos o ponto
  end.

Funções predefinidas relacionadas:

Ver anexo Funções e procedimentos predefinidos no compilador.

a_familia_de_tipos_real.txt · Last modified: 2019/04/24 13:59 by castilho