Requisitos: Frequentemente usados para arredondamento e pouco sensíveis a requisitos de precisão.
Para arredondar duas casas decimais, o desenvolvedor escreveu o seguinte código,
O código é muito simples, desenvolvedoresO resultado real foi 12,12, o que contradisse o resultado esperado de arredondamento de 12,13。
A razão para esse resultado é que o Math.Round não usa a regra de arredondamento por padrão, mas sim faz rodadas para igualar.
Arredonda para cinco para formar um par
O chamado arredondamento de seis para cinco para formar um par significa que, após determinar os dígitos significativos, se o próximo dígito significativo for menor ou igual a 4, ele é arredondado para baixo; se for maior ou igual a 6, arredonda para cima por um. Quando o próximo dígito significativo for 5,
- Se o número antes de 5 for ímpar, arredonda cinco para cima e avança em um
- Se 5 for antes de um número par, pule 5 (0 é par).
Estatisticamente, arredondar para par é mais preciso do que arredondar cinco, porque quando há muitos cálculos, arredondar a cada cinco para um pode levar a um número maior.
Por exemplo:
1,15+1,25+1,35+1,45 = 5,2
Se os dígitos significativos forem uma casa decimal, o resultado é obtido usando o princípio de arredondamento
1.2 + 1.3 + 1.4 + 1.5 = 5.4
O resultado obtido arredondando para cinco pares é
1.2 + 1.2 + 1.4 + 1.4 = 5.2
Isso mostra que a regra de arredondamento produz resultados mais precisos.
Math.Round
Então, como você usa o Math.Round para alcançar o arredondamento esperado?
Na verdade, o Math.Round em C# oferece muitos métodos de sobrecarga, incluindo dois métodos:
Ambos os métodos fornecem um terceiro parâmetro chamado modo, que é uma variável de enumeração do MidpointRounding com dois valores selecionáveis
- AwayFromZero - arredondando para cima
- ToEven - arredondar para arredondar por par
Então, se quisermos um resultado ideal arredondado, podemos usar o seguinte código:
Enumeração por arredondamento do meio do tempo, conforme mostrado abaixo:
Referência:O login do hiperlink está visível. |