我们在计算数字时,有时会需要保留几位小数,有时需要四舍五入,有时候需要直接舍弃后面的小数,有时候需要进一位,其实C#的Math.Round()
方法有提供相应的选项,即MidpointRounding
。
我们翻阅Math.Round Method可以看到,Math.Round()
有多参数重载。
其中Math.Round(Decimal, Int32, MidpointRounding)
支持保留n位小数,并且选择四舍五入的策略。
下面是例子代码
var originalNumber = (decimal)9.081;
var nomalNumber = Math.Round(originalNumber, 2);//output:9.08
var toEvenNumber = Math.Round(originalNumber, 2, MidpointRounding.ToEven);//output:9.08
var awayFromZeroNumber = Math.Round(originalNumber, 2, MidpointRounding.AwayFromZero);//output:9.08
var toZeroNumber = Math.Round(originalNumber, 2, MidpointRounding.ToZero);//output:9.08
var toNegativeInfinityNumber = Math.Round(originalNumber, 2, Mid