19

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

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

所以 635.25 将是 600。

298.42 将是 250。

149.56 将是 100。

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

4

3 回答 3

41

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

double n = Math.Floor(n / 50.0) * 50.0;
于 2013-02-22T16:00:41.627 回答
5

Guffa 的另一种方式:

(((int) value) / 50) * 50
于 2013-02-22T16:00:35.353 回答
2

使用模数:

var roundedDownToClosestFifty = value - (value % 50);
于 2018-03-19T15:53:53.017 回答