С# как всегда округлять до ближайших 50

Я сделал поиск в С# округлении, но не смог найти ответ на мою текущую проблему.

То, что я хочу сделать, всегда округляется до ближайшего 50. Все значения, которые я хочу округлить, будут в десятичной форме.

Итак, 635.25 будет 600.

298.42 будет 250.

149.56 - 100.

Я посмотрел на math.round, но как я буду использовать его, чтобы он всегда округлялся до ближайших 50 и никогда не поднимался?

Ответ 1

Разделите значение на 50, округлите до ближайшего целого числа и снова умножьте на 50:

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

Ответ 2

Еще один способ для Гуффа:

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

Ответ 3

Использование модуля:

var roundedDownToClosestFifty = value - (value % 50);