Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 1|Respuesta: 0

[Consejos] .NET/C# utiliza el MidpointRounding de Math.Round para redondear

[Copiar enlace]
Publicado enHace 46 segundos | | | |
Requisitos: A menudo se usa para redondear y no es muy sensible a los requisitos de precisión.

Para lograr redondear dos decimales, el desarrollador escribió el siguiente código,
El código es muy sencillo, desarrolladoresEl resultado real fue 12,12, lo que contradecía el resultado de redondeo esperado de 12,13

La razón de este resultado es que Math.Round no utiliza la regla de redondeo por defecto, sino que hace rondas para hacer par.

Redondea a cinco para formar un par

El llamado redondeo de seis a cinco para formar un par significa que, tras determinar los dígitos significativos, si el siguiente dígito significativo es menor o igual a 4, se redondea hacia abajo; si es mayor o igual a 6, se redondea hacia arriba por uno. Cuando el siguiente dígito significativo sea 5,

  • Si el número anterior al 5 es impar, redondea cinco hacia arriba y avanza uno
  • Si 5 es antes de un número par, salta 5 (0 es par).

Estadísticamente, redondear a par es más preciso que redondear a cinco, porque cuando hay muchos cálculos, redondear cada cinco a uno puede dar lugar a un número mayor.

Por ejemplo:

1,15+1,25+1,35+1,45 = 5,2

Si los dígitos significativos son un decimal, el resultado se obtiene usando el principio de redondeo

1.2 + 1.3 + 1.4 + 1.5 = 5.4

El resultado que se obtiene al redondear a cinco pares es

1.2 + 1.2 + 1.4 + 1.4 = 5.2

Esto muestra que la regla de redondeo da resultados más precisos.

Math.Round

Entonces, ¿cómo se utiliza Math.Round para lograr el redondeo esperado?

De hecho, Math.Round en C# proporciona muchos métodos de sobrecarga, incluyendo dos métodos:
Ambos métodos proporcionan un tercer parámetro llamado modo, que es una variable de enumeración de MidpointRounding con dos valores seleccionables

  • AwayFromZero - resumiendo hacia arriba
  • ToEven - redondeando a redondeando a par

Así que si queremos un resultado ideal redondeado, podemos usar el siguiente código:
Enumeración de redondeo a mitad de la historia, como se muestra a continuación:



Referencia:El inicio de sesión del hipervínculo es visible.




Anterior:Optimización WITH (NOLOCK) para consultas EF Core de alta concurrencia
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com