如何将双精度值舍入到最接近的整数



如何实现以下四舍五入?

0.01> 0

1.033>1

1.1>1.5

2.1> 2.5

2.4> 2.5

2.5> 2.5

2.6> 3

因此,您希望将数字向上舍入到最接近的 0.5,以便 2.4 向上舍入为 2.5,2.6 向上舍入为 3。

因此,您可以使用Math.Ceiling而不是Math.Round。只有它四舍五入到最接近的整数,而你想要最接近的一半。因此,我们这样做:

double RoundUpToHalf(double number)
{
    number *= 2;  // Turn 2.4 to 4.8
    number = Math.Ceiling(number)  // Round up to 5
    return number/2;  // Back to 2.5
}

最新更新