Ir para conteúdo
  • Cadastre-se

dev botao

NFe - Truncar ou Arredondar ?


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

Recommended Posts

  • Membros

Bom noite... segue o código...


if (qProdTmpCSOSN.AsString = '101') then begin

   pCredSN := 1.86;

   vCredICMSSN := qProdTmpVLTOTAL.Value*1.86/100;

end;

Se qProdTmpVLTOTAL.Value = 99,99 o vCredICMSSN será R$ 1,8598

O certo seria truncar para R$ 1,85 ou arredondar para R$ 1,86 ?

Obrigado

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Não é tão simples... porque o ZERO não existe nesta lista (pois zeros à direita após a vírgula não têm valor, lembra?). Na verdade é preciso estipular uma "regra de desempate" para usar quando o algarismo for 5, pois 0,125 está EXATAMENTE no meio entre 0,12 e 0,13. Uma das regras, por exemplo, usa o algarismo anterior para desempatar: "se depois do 5 não tiver número significativo, observa-se o algarismo anterior, se for par conserva e se for ímpar aumenta." [1]

1-2-3-4 = arredonda pra baixo

6-7-8-9 = arredonda pra cima

5 = usa alguma regra de desempate

[1] http://professor.ucg.br/SiteDocente/adm ... AMENTO.doc

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Não é tão simples... porque o ZERO não existe nesta lista (pois zeros à direita após a vírgula não têm valor, lembra?). Na verdade é preciso estipular uma "regra de desempate" para usar quando o algarismo for 5, pois 0,125 está EXATAMENTE no meio entre 0,12 e 0,13. Uma das regras, por exemplo, usa o algarismo anterior para desempatar: "se depois do 5 não tiver número significativo, observa-se o algarismo anterior, se for par conserva e se for ímpar aumenta." [1]

1-2-3-4 = arredonda pra baixo

6-7-8-9 = arredonda pra cima

5 = usa alguma regra de desempate

[1] http://professor.ucg.br/SiteDocente/adm ... AMENTO.doc

hehe .. teste no Excell

Coloque num campo

0,1253

0,1252

depois = ARRED( 0,1252;2)

Em Delphi = Roundto( 0,1252 , -2 );

Equipe ACBr Henrique Leonardo
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Tecnólogo em processamento de dados

E-mail [email protected] - Skype : hleorj

Link para o comentário
Compartilhar em outros sites

Você não entendeu...

Claro q sim .. Alexsander

Sem problemas .e vamos para outra.

Você não entendeu! Eu usei o exemplo de 0,125 que pode ser 0,12 ou 0,13 conforme a "regra de desempate" escolhida pelo aplicativo (ou humano). Você usou os exemplos 0,1253 e 0,1252 que, obviamente, devem ser arredondados SEMPRE para 0,13 porque não requerem desempate, visto que HÁ algarismo depois do 5. Leia o artigo que indiquei pra entender.

Eu nem deveria estar dando explicação, mas 7 anos como professor universitário me deixaram com este hábito...

Alexsander da Rosa

Rednaxel Informática

http://rednaxel.com

Link para o comentário
Compartilhar em outros sites

Amigos,

No meu caso vou utilizar Truncamento. Percebi que nos Cupons Fiscais (ECF) é utilizado o Truncamento para calcular a Base de Cálculo e o ICMS e no meu caso vou emitir a NF-e posteriormente à emissão do Cupom Fiscal, então acredito que o cálculo de ambos documentos fiscais devem ser iguais.

Tinha criado um tópico onde apresento as opções de Cupom Fiscal e a devida Base de Cálculo e o ICMS a pagar, assim dá para entender do que estou falando quando cheguei a conclusão de efetuar o Truncamento.

Fabrício Gomes Araújo

Link para o comentário
Compartilhar em outros sites

  • 9 anos depois...
  • Este tópico foi criado há 1411 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.