Saltar al contenido

C# Redondeo MidpointRounding.ToEven frente a MidpointRounding.AwayFromZero

Nuestro grupo de redactores ha estado mucho tiempo investigando respuestas a tus preguntas, te ofrecemos la resolución por esto nuestro objetivo es resultarte de mucha ayuda.

Solución:

Desde MSDN:

De forma predeterminada, Math.Round usa MidpointRounding.ToEven. La mayoría de las personas no están familiarizadas con “redondear a la par” como alternativa, “redondear desde cero” se enseña más comúnmente en la escuela. El valor predeterminado de .NET es “Redondear a par”, ya que es estadísticamente superior porque no comparte la tendencia de “redondear desde cero” de redondear un poco más a menudo hacia arriba que hacia abajo (suponiendo que los números que se redondean tienden a ser positivos). )

Según el conjunto de datos, el redondeo aritmético simétrico puede introducir un sesgo importante, ya que siempre redondea los valores del punto medio hacia arriba. Para tomar un ejemplo simple, suponga que queremos determinar la media de tres valores, 1.5, 2.5 y 3.5, pero que primero queremos redondearlos al entero más cercano antes de calcular su media. Tenga en cuenta que el true la media de estos valores es 2,5. Usando el redondeo aritmético simétrico, estos valores cambian a 2, 3 y 4, y su media es 3. Usando el redondeo bancario, estos valores cambian a 2, 2 y 4, y su media es 2.67. Debido a que el último método de redondeo está mucho más cerca del true media de los tres valores, proporciona la menor pérdida de datos.

http://msdn.microsoft.com/en-us/library/system.math.round.aspx

Si tu valor es 123.45 luego

123.5 <-- MidpointRounding.AwayFromZero
123.4 <-- Punto medioRedondeo.ToEven

Reseñas y calificaciones del artículo

Te invitamos a sustentar nuestra publicación mostrando un comentario y puntuándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 1)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *