Ir para conteúdo
  • Cadastre-se

dev botao

Arredondando errado Delphi XE7 - RoundTo


Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 1512 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá!

Fazendo uns testes aqui com arredondamento no Delphi Xe7, identifiquei que a função RoundTo do delphi me traz um arredondamento errado.

se fizer o RoundTo( 153.925 , -2 ) e me retorna 153,92

se fizer o RoundTo( 153.725 , -2 ) e me retorna 153,73

 

testei no Xe8 também ocorre, ai fui la no Delphi 2007, e faz certo.
Procurei na web por outras formas de arredondar e também ocorre o problema com outras funções.

Alguem que tem o XE de alguma versão pode testar faz favor, pois to achando q o bug é na unit Math do delphi.

Vlw

Daniel Carus

 

 

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Se você quer fazer arredondamento de acordo com as legislações Brasileiras, use:

ACBrUtil.RoundABNT()

 

  • Curtir 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Para maior explicação, existem na verdade variadas normas de arredondamento. RoundTO usa a chamada "Banker's rounding". Infelizmente a wikipédia em português não tem um artigo explicativo, só em inglês.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...

Infelizmente o ACBrUtil.RoundABNT também falha, simule com a seguinte formula: ACBrUtil.RoundABNT(4.93 * 0.5, 2);

Seguindo as normas ABNT deveria dar 2,47 mas é apresentado 2,46

Pois 4.93 * 0.5 = 2.465 arredondando para duas casas 2,47

 

Editado por Marcos Rogerio Zaccaro
Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
30 minutos atrás, Marcos Rogerio Zaccaro disse:

Pois 4.93 * 0.5 = 2.465 arredondando para duas casas 2,47

Segundo a regra deve ficar 2,46 mesmo:

image.png

https://www.sofazquemsabe.com/2011/01/como-fazer-arredondamento-da-numeracao.html

  • Curtir 4
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1512 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...