Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 1|Resposta: 0

[Gorjetas] .NET/C# usa o MidpointRounding do Math.Round para arredondamento

[Copiar link]
Publicado em46 segundos atrás | | | |
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.




Anterior:Otimização WITH (NOLOCK) para consultas EF Core de alta concorrência
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com