|
Postada em 30/03/2007 10:20 hs
seguinte, tenho um sistema para ecf, e tenho problema quanto aos valores dos produtos na hora de fazer conversões... ex.: faço uma venda de 10,00 reais de gasolina o preco da gasolina é 2,95 10,00 / 2,95 = 3,389 tratando 3 casas apos a virgula
tudo bem, mando estas informações para a ecf, quantidade = 3,389 vr unt. 2,95 3,389 x 2,95 = 9,99
ai mando o total da venda como 10,00 - o problema, fica sempre 1 centavo de troco.... preciso resolver este problema, com o cliente, o mais rapido possivel... se alguem puder me dar uma ideia eu agradeço muito
obrigado
|
|
|
|
|
Postada em 30/03/2007 10:23 hs
Isso é um problema com o arredondamento das casas decimais da divisão, use Format para resolver.
|
|
|
|
Postada em 30/03/2007 15:29 hs
use o format q o kerplunk falou mas trate com 2 casas decimais... ou use o tipo currency para limitar as casas decimais a 4. 3,39 * 2,95 = 10,00 'formatando tudo com 2 casa decimais
|
|
|
|
Postada em 31/03/2007 14:44 hs
Amigo, voce pode também programar a ECF para ARREDONDAMENTO, acaba seu problema, em algumas versões mais novas não existe esta programação, o valor default da impressora é TRUNCAMENTO, pode ser este seu caso, ai voce tem que partir para outra solução, veja abaixo como eu resolvi, se alguém tiver uma dica mais fácil, agradeço: TOTALDOITEM = Round((((PREÇOVENDA * QUANTIDADE)) - 0.0049), 2) VALOR = VALOR + Round(TOTALDOITEM, 2) E assim, TRUNCA, acompanhando o total da ECF, deu certo, acabou o meu problema, pois as vezes, a diferença chega a mais de 5 centavos, dependendo da quantidade de itens. Outra coisa, voce pode também pegar o valor do total do cupom na impressora e jogar este valor no seu aplicativo, sem ter que fazer o cálculo. vlu//
|
|
|
|