四舍五入到最接近的 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
点击下面提到的链接后:
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