segunda-feira, 21 de setembro de 2009

Truncando valores reais para apenas n casas decimais

{ Às vezes você precisa considerar apenas duas casas de valores reais, mas o Delphi não oferece algo pronto para isto. Se usarmos funções como Round que vem com o Delphi, o valor será arredondado (e não truncado). Com Round() o valor abaixo será 135.55 (e não 135.54) com duas casas decimais.}
ValorReal := 135.54658;
{ Somente a parte inteira - nenhuma casa decimal }
X := Trunc(ValorReal); // X será 135
{ Duas casas }
X := Trunc(ValorReal * 100) / 100; // X será 135.54
{ Três casas }
X := Trunc(ValorReal * 1000) / 1000; // X será 135.5465 {Isto pode não funcionar se ValorReal for muito alto. Isto por causa da multiplicação que poderá estourar a capacidade do tipo em uso. Lembre-se: os tipos reais aceitam valores muuuiiiito altos. }

Nenhum comentário:

Postar um comentário