Redondeo hasta 2 lugares decimales en C#
math (3)
Multiplicar por 100, el límite de llamadas, dividir por 100 hace lo que creo que está pidiendo
public static double RoundUp(double input, int places)
{
double multiplier = Math.Pow(10, Convert.ToDouble(places));
return Math.Ceiling(input * multiplier) / multiplier;
}
El uso se vería como:
RoundUp(189.182, 2);
Esto funciona al desplazar el punto decimal a la derecha 2 lugares (de modo que se encuentra a la derecha de los últimos 8), luego realizar la operación de techo y luego cambiar el punto decimal a su posición original.
Esta pregunta ya tiene una respuesta aquí:
Tengo un número decimal que puede ser como el siguiente:
189.182
Quiero redondear esto hasta 2 decimales, por lo que la salida sería la siguiente:
189.19
¿Existe una funcionalidad integrada para esto en la clase de Matemáticas, o algo más? Sé que la función de techo existe pero esto no parece hacer lo que quiero, se redondeará a la int más cercana, así que solo ''189'' en este caso.
Puedes usar:
n = System.Math.Ceiling (n * 100) / 100;
Una explicación de las diferentes funciones de redondeo se puede encontrar here .
Qué tal si
0.01 * ceil(100 * 189.182)