C#数学四舍五入(值/2)。值是十进制的。功能不适用于一个特定的数字4.5
我希望小数点四舍五入,向下四舍五入到0.4,向上四舍五入到0.5 尝试了这些方法,但由于某些原因,如果值为4.5,则会舍入为4,而不是5 所有其他值都可以正常工作。 3.5=4.0,5.5=6.0,但4.5=4.0预期为5.0C#数学四舍五入(值/2)。值是十进制的。功能不适用于一个特定的数字4.5,c#,.net,C#,.net,我希望小数点四舍五入,向下四舍五入到0.4,向上四舍五入到0.5 尝试了这些方法,但由于某些原因,如果值为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(value / 2)
Math.Round(Math.Round(value / 2),0, MidpointRounding.AwayFromZero)
您的第一行使用默认的舍入类型(称为银行家舍入)。您的第二行几乎可以得到您想要的,但是您不需要包含对
Math.Round()
的两个调用
对于您想要的,它可能应该如下所示:
Math.Round((value / 2), 0, MidpointRounding.AwayFromZero)
// e.g. 3.5 => 4, 4.5 => 5, 5.5 => 6, etc.
阅读有关银行舍入的更多信息,并阅读有关
Math.Round()
的更多信息您的第一行使用默认舍入类型(称为银行舍入)。您的第二行几乎可以得到您想要的,但是您不需要包含对Math.Round()
的两个调用
对于您想要的,它可能应该如下所示:
Math.Round((value / 2), 0, MidpointRounding.AwayFromZero)
// e.g. 3.5 => 4, 4.5 => 5, 5.5 => 6, etc.
阅读更多关于银行家舍入的信息,阅读更多关于
Math.Round()
方法没有达到预期效果时可能出现的重复。首先,您忽略了最重要的事实:值的类型是什么?
?另外,为什么第二行要舍入,然后舍入已经舍入的值?这没有任何意义。可能重复的可能重复的可能重复的任何时候一个方法没有做你期望的事情,首先。你忽略了最重要的事实:值的类型是什么?
?还有,为什么在你的第二行你要舍入,然后舍入已经舍入的值?那没有任何意义。可能是重复的