四舍五入到最接近的 5 C#

Round to nearest 5 up C#

点击下面提到的链接后:

Link1 Link2 Link3 而这样的例子不胜枚举。我不认为我完全理解 Math.Round.

的想法

假设我有以下 值 [73.59, 46.28] 现在我想同时达到下一个 5.

使用Math.Round(Value / 5) * 5后最终结果如下:

73.59 => 70

46.28 => 45

这适用于 Math.Round 的预期使用方式。但是,我正在使用货币并希望它成为下一个 5。因此,期望的结果如下:

73.59 => 75

46.28 => 50

我也试过 MidpointRounding.AwayFromZero 但我仍然没有得到想要的结果。有人可以解释或指导我如何完成这项任务吗?

提前致谢。

要始终向上舍入,您应该使用 Math.Ceiling 而不是 Math.Round:

static int RoundUpToMultipleOf5(decimal value) => (int)Math.Ceiling(value / 5) * 5