Formatar Número

Delphi

06/03/2004

Galera, gostaria de formatar um número com 3 casas decimais, mas preciso que o resultado não seja arredondado, por exemplo:

O número 2,5269 deve ser formatado 2,526 e não 2,527.

Estou usando cálculos com o formatfloat, mas ele me retorna um resultado arredondado, mas os resultados devem ser como mostrei acima.

Desde já agradeço;


Zampier

Zampier

Curtidas 0

Respostas

Edilcimar

Edilcimar

06/03/2004

use a função trunc


GOSTEI 0
Marco Salles

Marco Salles

06/03/2004

Amigo, Na Units Math Deve Existir Uma Função Que Lhe Forneça o Que Voce Quer...Como Este Método Ou Esta Função Ate Agora Não Foi Colocada Por Nenhum Dos Colegas, Resolve Escrever o Método Na Mão.
Espero Que Alguem Com Esclarecimento Neste Tópico Possa Elucidar o Veredito Com Uma Setença Mais Suave...No Mais Segue o Código

Function FormatarNumeroComTresCasasSemArredondar(Numero:Currency):Currency;
var
i:Integer;
Parar:Integer;
Diferenca:Integer;
Texto:String;
StringNumero:String;
begin
StringNumero:=CurrToStr(Numero);// Transfm o Num em Uma String
Parar:=Length(StringNumero); //Pega o Tmh De Char Desta String
Texto:=´´;// Valor De Inicialização;
i:=1; //Valor De Inicialização De Inicialização
  While i <= Parar Do
      begin
        Texto:=Texto+StringNumero[i];
        if StringNumero[i] = DecimalSeparator Then
          begin
            Diferenca:=Length(StringNumero)-Length(Texto);
            if Diferenca >= 3 Then
               Parar:=Parar-(Diferenca-3);//O Tres Não Esta Aqui a Toa
          end;
        i:=i+1;
     end; // Fim Do While
  result:=StrToCurr(Texto);
  ShowMessage(FormatCurr(´#,.000´,result));//Desnecessário
end;


Qualquer Dúvida Ou Sugestão , Por Favor ......


GOSTEI 0
POSTAR