如果值大于0.7,我想舍入小数
示例:
decimal rate = 3.7
decimal roundoff = 4
decimal rate2 = 3.6
decimal roundoff2 = 3.6 //remain value coz its below 0.7
我怎么能在c#中做到这一点?
答案 0 :(得分:15)
您可以使用模数来计算余数:
decimal d = rate % 1 >= .7m ? Math.Ceiling(rate) : rate;
您可以将此用作负值:
return rate >= 0
? (rate % 1 >= .7m ? Math.Ceiling(rate) : rate)
: (Math.Abs(rate % 1) >= .3m ? Math.Floor(rate) : rate);
答案 1 :(得分:3)
纯粹是因为我无法抗拒尝试数学等价物:
rate + (int)((rate % 1) / 0.7m) * (1 - Math.Abs(rate % 1));
如果完全没有通话,就无法摆脱Math.Abs。如果只使用正数,则可以省略math.abs。