Usuário com melhor resposta
math.round arredondando com erro

Pergunta
-
Oi Pessoa,
Preciso fazer uma operação simples, quantidade * preço unitário arredondando o resultado para 2 casas. Se eu fizer no excel ou em qualquer calculadora o resultado será o mesmo, mas se eu utilizar o math.round o resultado é diferente. Por exemplo se eu fizer 1.057 X 35 isto dá 36.995 que arredondado no excel ou na calculadora é 37.00 mas com o math.round isto dá 36.99.
Isto está me causando um grande transtorno. Alguém sabe como contornar isso?
Grato
Respostas
Todas as Respostas
-
-
Olá Daxxel1,
Tudo bem?
Verifique por gentileza se estas informações são úteis para te ajudar a resolver seu problema:
Espero ter ajudado.
Marcos SJ Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Muito obrigado pela ajuda, mas não resolveu.
já tenteiMath.Round(vValor ,vDec ,MidpointRounding.AwayFromZero) e Math.Round(vValor ,vDec ,MidpointRounding.toEven)
e o resultado é sempre o mesmo: 36.99 (nesta operação especifica 1.0570 * 35) -
Boa noite,
Veja se o link abaixo te ajuda.
http://www.dotnetperls.com/math-round
No exemplo do link, é utilizado uma propriedade chamada MidpointRounding.AwayFromZero, que se utilizada no método Math.Round() o retorno do número é o mais longe do 0 (zero). No seu caso ficaria 37,00.
Abs.
Bruno Destro
Dicas de programação em .net, C# e SQL - http://smcode.com.br/
-