solo round resultado redondear places mostrar mas hacia decimales abajo c# c#-4.0

round - redondear double c#



Redondear doble a dos lugares decimales (4)

Posible duplicado:
c # - ¿Cómo redondeo un valor decimal a 2 lugares decimales (para la salida en una página)

¿Cuál es la mejor manera de redondear un doble a dos decimales y también tenerlo en dos decimales?

Ejemplo: 2.346 -> 2.35, 2 -> 2.00

Espero evitar algo como esto en el que tengo que convertir un doble en una cuerda y luego volver a un doble, lo que parece una mala manera de hacerlo.



Redondea el valor a la precisión deseada y luego formatéalo. Siempre prefiera la versión de Math.Round que contiene el parámetro de redondeo de punto medio. Este parámetro especifica cómo manejar los valores de punto medio (5) como último dígito.

Si no especifica AwayFromZero como el valor para param, obtendrá el comportamiento predeterminado, que es ToEven. Por ejemplo, al usar ToEven como método de redondeo, obtienes:

Math.Round(2.025,2)==2.02 y

Math.Round(2.035,2)==2.04

en su lugar, utilizando el parámetro MidPoint.AwayFromZero:

Math.Round(2.025,2,MidpointRounding.AwayFromZero)==2.03 y

Math.Round(2.035,2,MidpointRounding.AwayFromZero)==2.04

Entonces, para un redondeo normal, es mejor usar este código:

var value=2.346; var result = Math.Round(value, 2, MidpointRounding.AwayFromZero); var str=String.Format("{0:0.00}", result );


double someValue = 2.346; string displayString = someValue.ToString("0.00");

Tenga en cuenta que double.ToString (y, por lo tanto, string.Format ()) utiliza el redondeo del punto medio desde cero, por lo que 0.125 se convierte en 0.13. Este suele ser el comportamiento deseado para su visualización. Obviamente, estas cuerdas no deben usarse para disparos redondos.

Este método también es inadecuado para el redondeo que se requiere en los cálculos matemáticos (donde MidpointRounding.ToEven suele ser el mejor enfoque). En ese caso, se debe utilizar Math.Round ().


double someValue = 2.346; String.Format("{0:0.00}", someValue);