truncar round redondear recortar definir decimales c# decimal rounding

round - redondear double a 2 decimales c#



Redondee un decimal al cuarto más cercano en C# (2)

Alternativamente, puede usar UltimateRoundingFunction en este blog: http://rajputyh.blogspot.in/2014/09/the-ultimate-rounding-function.html

//amountToRound => input amount //nearestOf => .25 if round to quater, 0.01 for rounding to 1 cent, 1 for rounding to $1 //fairness => btween 0 to 0.9999999___. // 0 means floor and 0.99999... means ceiling. But for ceiling, I would recommend, Math.Ceiling // 0.5 = Standard Rounding function. It will round up the border case. i.e. 1.5 to 2 and not 1. // 0.4999999... non-standard rounding function. Where border case is rounded down. i.e. 1.5 to 1 and not 2. // 0.75 means first 75% values will be rounded down, rest 25% value will be rounded up. decimal UltimateRoundingFunction(decimal amountToRound, decimal nearstOf, decimal fairness) { return Math.Floor(amountToRound / nearstOf + fairness) * nearstOf; }

Llame a continuación para redondeo estándar. es decir, 1.125 se redondeará a 1.25

UltimateRoundingFunction(amountToRound, 0.25m, 0.5m);

Llame a continuación para redondear los valores de borde. es decir, 1.125 se redondeará a 1.00

UltimateRoundingFunction(amountToRound, 0.25m, 0.4999999999999999m);

El llamado "Redondeo de los Bancos" no es posible con UltimateRoundingFunction, tiene que ir con la respuesta de paxdiablo para ese soporte :)

¿Hay una manera simple en c # para redondear un decimal al cuarto más cercano iex0, x.25, x.50 x.75 por ejemplo 0.21 redondearía a 0.25, 5.03 redondearía a 5.0

Gracias de antemano por cualquier ayuda.


Multiplícalo por cuatro, round como lo necesites a un entero, luego divídelo por cuatro de nuevo:

x = Math.Round (x * 4, MidpointRounding.ToEven) / 4;

Las diversas opciones de redondeo, y sus explicaciones, se pueden encontrar en esta excelente respuesta here :-)