Duvidas com casas Decimais.
Galera, mais uma vez venho pedir um auxilio a galera do fórum.
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.
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
Curtidas 0
Respostas
Maxadens
22/05/2004
Peque o valor 1,734 e multiplica por 100.
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
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
Edilcimar
22/05/2004
ou utilize uma variável tipo currency que ela já faz o arredondamento automaticamente
GOSTEI 0
Aroldo Zanela
22/05/2004
Colegas,
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:
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