Enumeración System.MidpointRounding

En este artículo se proporcionan comentarios adicionales a la documentación de referencia de esta API.

Use la MidpointRounding enumeración con las sobrecargas adecuadas de Math.Round, MathF.Roundy Decimal.Round para proporcionar más control del proceso de redondeo.

Hay dos estrategias generales de redondeo (redondeo a redondeo más cercano y dirigido) y cada campo de enumeración participa exactamente en una de estas estrategias.

Redondeo al más cercano

Campos:

Una operación de redondeo a más cercana toma un número original con una precisión implícita o especificada; examina el siguiente dígito, que está en esa precisión más uno; y devuelve el número más cercano con la misma precisión que el número original. En el caso de los números positivos, si el siguiente dígito es de 0 a 4, el número más cercano es hacia el infinito negativo. Si el siguiente dígito es de 6 a 9, el número más cercano es hacia infinito positivo. En el caso de números negativos, si el siguiente dígito es de 0 a 4, el número más cercano se dirige al infinito positivo. Si el siguiente dígito es de 6 a 9, el número más cercano es hacia infinito negativo.

Si el siguiente dígito va de 0 a 4 o 6 a 9, y MidpointRounding.AwayFromZeroMidpointRounding.ToEven no afecta al resultado de la operación de redondeo. Sin embargo, si el siguiente dígito es 5, que es el punto medio entre dos resultados posibles, y todos los dígitos restantes son cero o no hay dígitos restantes, el número más cercano es ambiguo. En este caso, los modos MidpointRounding de redondeo a más cercano permiten especificar si la operación de redondeo devuelve el número más cercano lejos de cero o el número par más cercano.

En la tabla siguiente se muestran los resultados de redondear algunos números negativos y positivos junto con los modos más cercanos. La precisión utilizada para redondear los números es cero, lo que significa que el número después del separador decimal afecta a la operación de redondeo. Por ejemplo, para el número -2.5, el dígito después del separador decimal es 5. Dado que ese dígito es el punto medio, puede usar un MidpointRounding valor para determinar el resultado del redondeo. Si AwayFromZero se especifica , se devuelve -3 porque es el número más cercano lejos de cero con una precisión de cero. Si ToEven se especifica , se devuelve -2 porque es el número par más cercano con una precisión de cero.

Número original AwayFromZero ToEven
3,5 4 4
2.8 3 3
2.5 3 2
2.1 2 2
-2.1 -2 -2
2,5- -3 -2
-2.8 -3 -3
3,5- -4 -4

Redondeo dirigido

Campos:

Una operación de redondeo dirigida toma un número original con una precisión implícita o especificada y devuelve el siguiente número más cercano en una dirección específica con la misma precisión que el número original. Modos dirigidos al MidpointRounding control hacia el que se realiza el redondeo predefinido.

En la tabla siguiente se muestran los resultados de redondear algunos números negativos y positivos junto con los modos de redondeo dirigido. La precisión utilizada para redondear los números es cero, lo que significa que el número antes del separador decimal se ve afectado por la operación de redondeo.

Número original ToNegativeInfinity ToPositiveInfinity ToZero
3,5 3 4 3
2.8 2 3 2
2.5 2 3 2
2.1 2 3 2
-2.1 -3 -2 -2
2,5- -3 -2 -2
-2.8 -3 -2 -2
3,5- -4 -3 -3