C#如何总是向下舍入到最接近的50

时间:2013-02-22 15:58:13

标签: c# function math decimal rounding

我已经对C#舍入进行了搜索,但未能找到当前问题的答案。

我想要做的是总是向下舍入到最接近的50.我要舍入的所有值都是十进制的。

所以635.25将是600。

298.42将是250。

149.56将是100。

我看过math.round但是我怎么用它,所以它总是向下舍入到最接近的50并且从不上升?

3 个答案:

答案 0 :(得分:31)

将值除以50,向下舍入到最接近的整数,再次乘以50:

double n = Math.Floor(n / 50.0) * 50.0;

答案 1 :(得分:5)

Guffa的另一种方式:

(((int) value) / 50) * 50

答案 2 :(得分:0)

使用模数:

var roundedDownToClosestFifty = value - (value % 50);