c# - 向上舍入到最接近的 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
但我仍然没有得到想要的结果。有人可以解释或指导我如何完成这项任务吗?
先感谢您。
解决方案
要始终四舍五入,您应该使用Math.Ceiling
而不是Math.Round
:
static int RoundUpToMultipleOf5(decimal value) => (int)Math.Ceiling(value / 5) * 5
推荐阅读
- facebook - 不使用 Facebook Login 登录多个网站的 Facebook 网站应用
- outlook-addin - 适用于 MAC 的 OnSend 的可用性?
- python-3.x - 如何获得熊猫的每日平均测量值
- documentation - 带有函数签名的 pyomo 文档
- r - 使用 ggplot() 在边框中重新创建 visreg() 数据刻度
- c# - Razor 复选框在 ASP.Net Core 2.2 MVC 中总是返回 false
- azure - 为什么这个用于使用 csv 文件中的标签标记 Azure VM 的 powershell 脚本会失败?
- java - 如何将 Guava 的“Sets.combinations”转换为可用的对象类型?
- react-intl - react-intl 可以为某些数字类复数一个完全不同的消息吗?
- .htaccess - 当旧域有参数时,将 url 重定向到新的子域