Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2421 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite.

Problema com um cliente que usa 4 decimais na quantidade dos produtos.

No banco de dados, a quantidade é um campo decimal (12,4)

O valor gravado no banco é 0.9900   (dois zeros a direita)

Quando alimento o componente, com:

Prod.qCom     := dm.qrNf02Quantidade.AsFloat, o valor fica como 0.9901

De onde vem este 01 no final ?

O correto seria (0,9900 * 800,00 = R$ 792,00)

Porém está calculando (0,9901 * 800 = R$ 792,08)

Já tentei tudo o que me veio à cabeça:

Prod.qCom     := dm.qrNf02Quantidade.Value;

Prod.qCom     := dm.qrNf02Quantidade.AsFloat; 

 Prod.qCom     := dm.qrNf02Quantidade.AsCurrency;

Tentei atribuir a variáveis do tipo Real, Double, Extended, Currency...

Tentei todas as funções Round, RoundTo, RoundABNT,. mas o 01 não some.

Alguém tem alguma dica ?

[]´s

Edson

Postado

Boa tarde.

Passei o dia inteiro fazendo testes e consegui resolver alterando os campos qCom e qTrib na unit pcnNFe.

Estão como Currency, e alterei para Double, resolvendo o problema.

Antes da alteração:

Alimentava o componente com 0,990 e ficava como 0,9901

Alimentava o componente com 0,185 e ficava como 0,1851

Alterando de Currency para Double matou a questão.

É possível aplicar esta correção ao trunk ?

[]´s

Edson

pcnNFe.pas

Postado

Campos Currency não possuem erros de arredondamento por definição, até o limite de 4 casas decimais. Não faz sentido trocar para Double, que é passível de erro de arredondamento. Deve haver alguma anomalia no código da sua rotina.

  • Este tópico foi criado há 2421 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...