首页 > 解决方案 > 向上舍入到最接近的 5 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但我仍然没有得到想要的结果。有人可以解释或指导我如何完成这项任务吗?

先感谢您。

标签: c#rounding

解决方案


要始终四舍五入,您应该使用Math.Ceiling而不是Math.Round

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

推荐阅读