如何实现以下四舍五入?
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
}