Converte Real para String no PascalZim

A versão para Free Pascal:

http://professorwellingtontelles.blogspot.com.br/2011/06/converter-real-para-string-em-pascal.html

O PascalZim tem algumas limitações que vem sendo acertada a cada nova versão. Então, se for fazer um programa, baixe sempre a última versão.

Para quem tiver interesse em ajudar o site no PascalZim é:

http://pascalzimbr.blogspot.com.br/

Vamos a problemática:

Fazer um programa que converta um valor REAL em STRING.

O programa:

R é o número Real

D é a quantidade de casas decimais

 

Program Pzim ;
Var
  n : Real ;
  s : String ;
  
  function RealStr ( r : Real ; d : Integer) : String;
  Var
    i,j : Integer ;
    aux : String ;
    s   : String ;
  Begin
  // Parte Inteira
  i := trunc (r) ;
  str (i,s) ;
  r := r - i ; // Remove a parte inteira
  s := s + ' .' ; // Ponto da casa decimal
  // Casas Decimais
  j := 0 ;
  While r < 1 Do
  Begin
    r := r * 10 ;
    i := trunc (r) ;
    str (i,aux) ;
    s := s + aux ;
    r := r - i ;
    j := j + 1 ;
    if j = d Then break ; // Sai do Looping
  End ;   
  RealStr := s ;   
End ;

Begin
  n := 124.5067812012 ;
  s := RealStr (n,5) ;
  WriteLn (s) ; 
  WriteLn (n:12:5) ; 
End .

 pascal-real-para-string

Qual dúvida, crítica ou sugestão entre em contato!

2 comentários:

  1. Professor, primeiramente parabéns pelo blog. Utilizei o código acima e ele dá certo para a maioria dos casos, mas não todos. Ao converter alguns números, ele arredonda para baixo.
    Por exemplo: 80.22, o resultado é '80.21'

    ResponderExcluir