varr: real;
r := 5,0;
O valor 5,0 é um número representado como uma fração decimal (tem um inteiro e uma parte fracionária). Na ciência da computação, esses números são chamados de reais 
Número real é um número que possui uma parte inteira e uma parte fracionária. As partes inteiras e fracionárias são separadas umas das outras por um ponto, não por uma vírgula como na matemática. 
Mesmo que a parte fracionária do número seja zero, como na variável \(r\) no exemplo, o tradutor ainda criará uma variável real na memória. O ponto é, por assim dizer, um sinal para o tradutor de que é necessário criar uma variável real.  
 
Números muito grandes e muito pequenos  são escritos usando "ponto flutuante" (no chamado formato científico).   
No formato científico, um número é representado como mantissa(parte significativa do número) e expoente. Quando notados, a mantissa e o expoente são separados um do outro pela letra e (denotando 10 até certo ponto).  
Por exemplo, você pode armazenar o valor da carga de um elétron ( \(1.60217662 \times 10^{-19}\) C) em um variável, escrevendo da seguinte forma
var E1: real
El := 1.60217662e-19 #para uma ordem positiva, o sinal + pode ser omitido
Quase todos os números reais não podem ser armazenados na memória do computador com precisão perfeita, pois um número limitado de bits é alocado para seu armazenamento. Portanto, ao calcular com números reais, os erros associados à imprecisão da representação se acumulam. Além disso, quanto menos espaço alocado, maior será esse erro. Para diminuir o erro em Pascal, é utilizado o tipo double, que armazena um número real na memória com maior precisão (ocupa 8 bytes de memória, enquanto o  real - 6 bytes) 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Entre
Você pode inserir várias variáveis reais do fluxo de entrada e escrevê-las em variáveis da maneira padrão:
 
var x, y: reais;
ler(x, y);
O primeiro número vai para a variável \(x\), o segundo vai para a variável \(y\)
Saída
Ao exibir números reais, o formato científico é selecionado por padrão. 
Você pode personalizar a saída conforme necessário de acordo com a condição do problema. Após o número, dois pontos indicam o número total de posições que serão alocadas para o número e, a seguir, outros dois pontos - o número de posições alocadas para a parte fracionária. Se após os primeiros dois pontos houver um número menor que a soma do número de caracteres na parte inteira do número, o espaço alocado para o ponto que separa as partes fracionária e inteira (1 caractere é alocado para isso) e o número de caracteres alocados para a parte fracionária e, em seguida, simplesmente um número com o número de caracteres alocado para a parte fracionária. Caso contrário, espaços adicionais são escritos antes do número. Portanto, se você não sabe quantos caracteres a parte inteira irá ocupar, você pode simplesmente escrever 0 após os primeiros dois pontos, e então o número inteiro será exibido sem espaços antes dele. 
Exemplo:
real x := 1,0/6;
writeln(x:12:9); // definido para exibir 9 casas decimais e um total de 12 casas decimais por número, levando em consideração o ponto de separação
A tela exibirá
_0.166666672
 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            Ao trabalhar com números reais, você pode usar o já conhecido módulo  math, que contém um grande número de funções integradas.  
Ao resolver problemas, muitas vezes é necessário arredondar números reais para os valores inteiros mais próximos. Existem três funções para isso.
 LEMBRE-SE 
1 função Trunc(x) - corta a parte fracionária  \(x\) e retorna um valor inteiro.
 2 F loor(x) -  retorna o maior inteiro menor ou igual a  \(x\) (arredondado para baixo) 
Função  3 C eil(x) -  retorna o menor inteiro maior ou igual a  \(x\) (arredondado para cima)
 
Aqui estão as funções mais úteis. Alguns deles são construídos em Pascal, enquanto o restante está contido no módulo  math.
 
| Função | 
Descrição | 
 
| Arredondamento | 
 
round(x) 
incorporado | 
Arredonda um número para o inteiro mais próximo. Se a parte fracionária do número for 0,5, o número será arredondado para o número inteiro mais próximo.  | 
 
trunc(x) 
incorporado | 
Descarta a parte fracionária | 
 
andar(x) 
em matemática | 
Arredonda um número para baixo ("piso"), portanto piso(1.5) == 1, piso(-1.5) ==  ; -2 | 
 
ceil(x) 
em matemática | 
Arredonda um número para cima ("ceiling"), enquanto ceil(1.5) == 2, ceil(-1.5) ==  ; -1 | 
 
abs(x) 
incorporado | 
Módulo (valor absoluto). | 
 
| Raízes, logaritmos | 
 
sqrt(x) 
incorporado | 
Raiz quadrada. Uso: y := sqrt(x) | 
 
potência(x, y) 
em matemática | 
Eleva x à potência de y. \(x^y\) | 
 
log2(x) 
em matemática | 
Log base 2. | 
 
| 
lnxp1(x)
em matemática
 | 
O logaritmo natural de (x + 1). | 
 
| Trigonometria | 
 
sin(x) 
incorporado | 
Seno de um ângulo especificado em radianos | 
 
cos(x) 
incorporado | 
Cosseno de um ângulo especificado em radianos | 
 
tan(x) 
em matemática | 
A tangente de um ângulo especificado em radianos | 
 
arsin(x) 
em matemática | 
Arcsine, retorna o valor em radianos | 
 
arccos(x) 
em matemática | 
Arco cosseno, retorna o valor em radianos | 
 
arctan(x) 
incorporado | 
Arcotangente, retorna valor em radianos | 
 
arctan2(y, x) | 
Ângulo polar (em radianos) do ponto (x, y). | 
 
 
  
            
            
                  
            
             
                    
            
                 
      
                  
           |