Tourner un décimal au quartier le plus proche de C#

Mots clés : c#decimalroundingc#

meilleur 3 Réponses Tourner un décimal au quartier le plus proche de C#

vote vote

91

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

83

//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; } 
UltimateRoundingFunction(amountToRound, 0.25m, 0.5m); 
UltimateRoundingFunction(amountToRound, 0.25m, 0.4999999999999999m); 
vote vote

70

namespace j {     public static class MathHelpers     {         public static decimal RoundToNearestQuarter(this decimal x)         {             return Math.Round(x * 4, MidpointRounding.ToEven) / 4;         }     } } 

Questions similaires