Ir para conteúdo
  • Cadastre-se

dev botao

O campo vprod ( valor total do item ) está truncando e não arredondando como deveria


Ver Solução Respondido por Kiko Fernandes,

Recommended Posts

Boa tarde !

 

O campo vprod  ( valor total do item ) está truncando e não arredondando como deveria.

 

Anexei o arquivo cupom.txt contendo o conteudo usado para o acbrmonitor

Anexei o xml gerado com o valor errado

 

O campo <vProd>11.12</vProd>  do primeiro item deveria seria 11.13 o correto

 

O problema é que dá 1 centavos de diferença.

Versao do acbr usada 1.4.0.210 .

Obrigado por ajudar se puderem

 

 

 

cupom.txt

31240410261693000120599000095910008372464070.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution

Bom dia!
Veja no código fonte que o Juliomar postou que o ACBr está usando a função RoundABNT().
RoundABNT()  segue as normas da ABNT (Associação Brasileira de Normas Técnicas) a qual tem em uma de suas regras a seguinte instrução:

Citar

Quando o algarismo a ser conservado for par, seguido de 5 e posteriormente de zeros, o algarismo a ser conservado permanece sem alteração.

Exemplo:   0,50 x 22,50 = 11,125
 
Aplicando a regra:
Algarismo a ser conservado:   2
é par?  -> Sim
é seguido de 5? -> Sim
posterior ao 5 são zeros? -> Sim
Então o algarimos a ser conservado (que é o 2) permanece sem alteração:   Logo 0,50 x 22,50 = 11,12.   (relembrando... seguindo as normas da ABNT)

Caso na posição do 2 (o algarismo a ser conservado) fosse um número impar, mudaria a situação, pois a regra seria:
 

Citar

Quando o algarismo a ser conservado for ímpar, seguido de 5 e posteriormente de zeros, soma-se uma unidade ao algarismo a ser conservado.

Então se você tivesse 11,135  o resultado seria 11,14. 

Então neste caso a tua função que calculou o 0,50 x 22,50 para informar em vprod 11,13 deverá usar também o arredondamento ABNT.

 


logoacbr.pngConheça o Portal do Projeto ACBr

Ajude o Projeto ACBr crescer - Assine o SAC ACBr
Assine um dos planos de longa duração do SAC ACBr, obtenha Descontos Especiais, Parcele no Cartão e ainda ganhe Brindes Exclusivos. Saiba mais aqui

Conheça o ACBrLib, o ACBr de forma nativa para qualquer linguagem de programação. Saiba mais aqui

 

 

 

 

Link para o comentário
Compartilhar em outros sites

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.