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.

Valnei Reis

Valnei Reis

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.
Responder

02/12/2009

Wilson Junior

Ah, utilize a biblioteca "Math" no USES.
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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar