标签: c# .net
我希望将小数点四舍五入,向下取整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)
答案 0 :(得分:5)
您的第一行正在使用默认的舍入类型(称为银行家的舍入)。您的第二行几乎可以满足您的要求,但是您不需要包括两次致电Math.Round()的请求。
Math.Round()
对于您想要的东西,它可能看起来应该像这样:
Math.Round((value / 2), 0, MidpointRounding.AwayFromZero) // e.g. 3.5 => 4, 4.5 => 5, 5.5 => 6, etc.
详细了解银行家四舍五入here,并详细了解Math.Round() here。