Fórum Duvidas com casas Decimais. #233814
22/05/2004
0
Tenho um pequeno problema.
Bom vou explicar. Aquelas balanças de peso (pesar legumes, carnes, etc) retorna o seguinte valor para mim de acordo com a informação abaixo.
Peso : 0,60g
Preço do Produto: 2,89
O resultado : 1,73
Se eu fizer isto na calculadora convencional da o valor 1,734.
No meu sistema de Pdv ele le a balanca e retorna o peso corretamente, e o sistema faz o calculo e dá 1,734 e com o arrendondamento mostrando na tela da 1,73.
Bom, mas se eu colocar 2 vezes o mesmo item, o computador dá 3,47 resumindo, se eu somar o valor mostrado na tela 1,73 + 1,73 teria que dar 3,46 mas nao da, da o valor 3,47 pois o calculo que a maquina faz é de 3,468, logicamente que a maquina vai aproximar para 3,47,
E ai eh que mora o meu problema, tenho que mostrar 3,46 pois se mostrar 3,47 o cliente que esta fazenda a compra reclama por causa de 0,01 (eh mole !!!!, mas eh isto que esta acontecendo e preciso resolver isto com a maxima urgencia)
Entao como fazer para ele mostrar 3,46 em vez de 3,47 ???????
Grato pela ajuda de todos.
Objetiva Creator.
Objetivacreator
Curtir tópico
+ 0Posts
22/05/2004
Maxadens
O resultado sera 173,4.
Execute a função trunc que ela retornará a parte inteira
Divida o valor por 100.
Veja o exemplo:
var A: double
begin
A:=StrToFloat(Edit1.text) // Atribui valor à variável A
A:=A*100;
A:=trunc(A);
A:=A/100;
Edit2.text:=FloatToStr(A) // retorna o valor aredondado;
end;
Garanto que funciona. Agora... se vc quizer que arredonde para cima, tera que trabalhar e implementar esta função;
Espero ter ajudado e precisando estamos ai
Um Abraço!
Ronaldo Araujo
Gostei + 0
23/05/2004
Edilcimar
Gostei + 0
23/05/2004
Aroldo Zanela
O tipo currency utiliza uma precisão de quatro casas decimais. No caso, pode-se utilizar a função RoundTo ou SimpleRoundTo, ou ainda, utilizar o exemplo descrito anteriormente pelo Edilcimar. Exemplo:
NewValue := RoundTo(OldValue, -2);
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)