你如何四舍五入到最近的分数? 因此,对于以下小数, 我想舍入并显示金额:
1230.3092 => $1230.30
221.9672 => $221.96
12345.6808 => 12345.68
我试过这个
Math.Round(value, 2, MidpointRounding.ToEven)
decimal.Round(value, 2, MidpointRounding.ToEven)
但有些原因可以解决。
答案 0 :(得分:4)
你想要这个:
(0.02m / 1.00m) * decimal.Round(value * (1.00m / 0.02m))
value * (1.00m / 0.02m)
是“2美分”单位的金额。将该空间舍入为整数,然后转换回美元。
MidpointRounding
应该用来确定你想要的方式,例如,100.01m
要舍入,因为它位于100.00m
和100.02m
之间。
答案 1 :(得分:1)
您正在尝试遵循非标准的舍入规则,因此内置函数将无法满足您的需求。要么重载方法,要么创建自己的方法 - 看起来你只需要截断为两位小数,然后在结果为奇数时添加一个(或者在地板上添加一个)。