Problema de formatação

16/07/2008

0

Bom dia caros colegas.

Estou com um problema que não achei no fórum, apesar de ficar procurando quase a manhã inteira.
É o seguinte.

Tenho um componente Edit1 que receberá o valor total do produto, então
se entro com a informação em uma variável para calcular chamada Valor_Total, obtenho inclusive pela calculadora convencional:

- Meia duzia de ovos brancos a R$ 2.19 a dúzia, então faço o seguinte calculo.

0.50 X 2,19 da um total de 1.095, este valor total se eu colocar para mostrar no campo Edit1 através do seguinte comando:

Edit1.Text := FormatFloat(´#,0.00´, Valor_Total);

Dá o valor 1.09, isto esta correto,

Agora vem o problema

0.50 x 2,39 da um total de 1,195, se eu mostrar no campo edit1, utilizando o mesmo comando acima da R$ 1,20, ta errado pq ele aproximou, da um centavo de diferença, e o cliente que estiver fazendo esta compra pode reclamar por causa de 1 centavo.

O engraçado é que no exemplo de 1.095 ele não arredonda, e no valor 1.195 ele arredonda.

Isto esta quebrando minha cabeça. Alguém poderia me ajudar com isto.
Sei que pode ser o tipo de formatação. Lembrando que tem que aparecer certinho o valor como se fosse em moeda, pois isto é um programa de venda (Frente de Caixa) e agora que percebemos este pequeno detalhe de um centavo.

Grato a todos

Valnei.


Objetivacreator

Objetivacreator

Responder

Posts

16/07/2008

Rodc

Use a função SetRoundMode() para mudar o tipo de arredondamento que ele faz. Pesquise no Help do Delphi como usar a função.


Responder

17/07/2008

Objetivacreator

Obrigado, vou pesquisar

Valeu a dica!!!


Responder

17/07/2008

Webjoel

Amigo,

faça o seguinte:

Edit1.Text := FormatFloat(´#,0.000´,1.195);


Se você quiser só mostrar ´1,19´, faça um RoundTo:

RoundTo(valor,-2);



Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar