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.
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
Curtir tópico
+ 0
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
Webjoel
Amigo,
faça o seguinte:
Se você quiser só mostrar ´1,19´, faça um RoundTo:
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
Clique aqui para fazer login e interagir na Comunidade :)