O tipo real é utilizado para armazenar valores numéricos onde as casas decimais são importantes, como por exemplo em informações comerciais do tipo preço de produtos, salários, taxas de juros, em informações científicas, por exemplo o valor de PI (3.141592...), o número de euler 2.7182..., valores do seno, cosseno e tangente de arcos, etc. O tipo real ocupa 8 bytes na memória da máquina e é o maior dos tipos básicos definidos no interpretador. A posição decimal em um valor numérico do tipo real é representada por um ponto. Abaixo temos um algoritmo que exemplifica o tipo real.
algoritmo( )
{
real R;
leia ("informe o preço de compra", R);
R := R * 1.25;
escreva ("o preço de venda e", R);
}
As seguintes operações estão atualmente disponíveis no Hall para o tipo real: adição (+), subtração (-), multiplicação (*), divisão (/), teste de equivalência (igualdade ==), teste de diferença (<>) e testes de comparações de ordem (>, >=, <, <=). O resultado dessas operações com valores reais sempre será um valor real. Caso o resultado dessa operação seja atribuido a um tipo inteiro, a parte fracionária será truncada.