Problemas ao obter peso
01/12/2009
0
Boa noite pessoal.
Estou tendo um pequeno problema, pequeno mesmo, mas não estou achando uma solução viável, tem coisas difíceis que eu consigo resolver mas esta esta me tirando do sério.
Já desenvolvi rotinas legais tipo informar a quantidade e código do produto (em barras) e ele me informar certinho o produto e a multiplicação da quantidade, tipo isto que ocorre nos supermercados. Quando adquirimos vários produtos do mesmo tipo o operador do caixa simplesmente digita a quantidade passa o produto no leitor e vuolá, ta pronto, isto eu consegui fazer usando poucas linhas de código, agora com isto, affff, que coisa.
Bom vamos ao problema.
Descrição do problema:
Aquelas etiquetas de balança, fazem um cálculo básico de divisão para obter o peso do produto.
Vamos ao exemplo
2085800002452 - Neste código de etiqueta da filizola, temos o 858 código do produto, 245, temos o valor do produto a ser pago.
Pegamos o preço do produto por kilo no banco de dados : Pão Frances a 4,99 Kg.
Para obter o valor em kg, pegamos o valor a ser pago, 2,45 e dividimos pelo preço do produto 4,99 o Kg, temos então na calculadora do windows o seguinte valor:
0,4909819639278557 - Valor da calculadora
No meu sistema temos o seguinte resultado : 0,491 Kg, na etiqueta da balança obtemos o peso de 0,490 Kg.
Agora vem a minha pergunta básica, como fazer para ele realmente retornar o peso correto no cálculo da divisão.
Trecho do código que utilizo:
nPreco_Lido: 2,45;
// Pego o valor do produto.
Preco_de_Venda := Dm.SQLDataSet1.FieldByName('Preco_Venda').AsFloat;
// Calculo nesta linha o kilo obtido pelo calculo
nKg_Obtido := nPreco_Lido / Preco_de_Venda;
// Mostro o kilo obtido na tela.
Edit4.Text := Format('%7.3n', [nKg_Obtido]) + ' KG';
Grato a todos que puderem dar uma pequena ajuda.
Valeu e Boa noite a todos.
Estou tendo um pequeno problema, pequeno mesmo, mas não estou achando uma solução viável, tem coisas difíceis que eu consigo resolver mas esta esta me tirando do sério.
Já desenvolvi rotinas legais tipo informar a quantidade e código do produto (em barras) e ele me informar certinho o produto e a multiplicação da quantidade, tipo isto que ocorre nos supermercados. Quando adquirimos vários produtos do mesmo tipo o operador do caixa simplesmente digita a quantidade passa o produto no leitor e vuolá, ta pronto, isto eu consegui fazer usando poucas linhas de código, agora com isto, affff, que coisa.
Bom vamos ao problema.
Descrição do problema:
Aquelas etiquetas de balança, fazem um cálculo básico de divisão para obter o peso do produto.
Vamos ao exemplo
2085800002452 - Neste código de etiqueta da filizola, temos o 858 código do produto, 245, temos o valor do produto a ser pago.
Pegamos o preço do produto por kilo no banco de dados : Pão Frances a 4,99 Kg.
Para obter o valor em kg, pegamos o valor a ser pago, 2,45 e dividimos pelo preço do produto 4,99 o Kg, temos então na calculadora do windows o seguinte valor:
0,4909819639278557 - Valor da calculadora
No meu sistema temos o seguinte resultado : 0,491 Kg, na etiqueta da balança obtemos o peso de 0,490 Kg.
Agora vem a minha pergunta básica, como fazer para ele realmente retornar o peso correto no cálculo da divisão.
Trecho do código que utilizo:
nPreco_Lido: 2,45;
// Pego o valor do produto.
Preco_de_Venda := Dm.SQLDataSet1.FieldByName('Preco_Venda').AsFloat;
// Calculo nesta linha o kilo obtido pelo calculo
nKg_Obtido := nPreco_Lido / Preco_de_Venda;
// Mostro o kilo obtido na tela.
Edit4.Text := Format('%7.3n', [nKg_Obtido]) + ' KG';
Grato a todos que puderem dar uma pequena ajuda.
Valeu e Boa noite a todos.
Valnei Reis
Curtir tópico
+ 0
Responder
Posts
02/12/2009
Wilson Junior
Bom, pelo o que entendi, o seu sistema está arredondando o valor, e acrescentando mais "0,001", para ele não arrendondar o valor e mostrar o valor "0,490" utilize a função RoundTo, procure no help do Delphi que ele lhe explicará extamente como ele funciona.
Espero ter ajudado.
Espero ter ajudado.
Responder
02/12/2009
Bruno Batista
Bom dia,
essa questão é complicada, pois tem que verificar se na hora de imprimir a etiqueta está arredondando ou truncando.
Nesse exemplo que você relatou, a balança está truncando.
para que fique com o valor correto, tem que utilizar o mesmo método nos lugares que utilizarem.
Atenciosamente,
Bruno Moreira Batista
essa questão é complicada, pois tem que verificar se na hora de imprimir a etiqueta está arredondando ou truncando.
Nesse exemplo que você relatou, a balança está truncando.
para que fique com o valor correto, tem que utilizar o mesmo método nos lugares que utilizarem.
Atenciosamente,
Bruno Moreira Batista
Responder
Clique aqui para fazer login e interagir na Comunidade :)