C#Math.Round(value / 2)。 值为十进制。 function不适用于一个特定的数字4.5

我期待圆形小数,0.1到0.4向下舍入和0.5到0.9向上尝试这些,但由于某种原因,如果值为4.5它舍入到4而不是5所有其他值工作正常。 3.5 = 4.0,5.5 = 6.0但4.5 = 4.0期望5.0

Math.Round(value / 2) Math.Round(Math.Round(value / 2),0, MidpointRounding.AwayFromZero) 

您的第一行使用默认的舍入类型(称为银行家舍入)。 你的第二行几乎可以得到你想要的,但你不需要包含两个对Math.Round()调用。

对于你想要的东西,它应该看起来像这样:

 Math.Round((value / 2), 0, MidpointRounding.AwayFromZero) // eg 3.5 => 4, 4.5 => 5, 5.5 => 6, etc. 

在这里阅读更多关于银行家舍入的内容,并在此处阅读有关Math.Round()更多信息。