首页 > 解决方案 > 将浮点数舍入到最接近 5 的倍数

问题描述

我不能这样做,四舍五入到最接近的 5 倍数:

1 => 0
2 => 0
3 => 5
4 => 5
5 => 5
6 => 5
7 => 5
8 => 10
9 => 10
10 => 10

标签: c#

解决方案


Math.Round将双精度浮点值四舍五入到最接近的整数值,所以Math.Round((double)f/5) * 5应该这样做:

Enumerable.Range(1, 10)
    .Select(i => Math.Round((double)i/5) * 5)

推荐阅读