c# math

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)