【发布时间】:2012-07-11 11:35:54
【问题描述】:
查看Convert.ToInt32() 的 msdn 文档指出:
如果值在两个整数的中间,则偶数是 回来;即4.5转4,5.5转6。
http://msdn.microsoft.com/en-us/library/ffdk7eyz.aspx
这是为什么?
当然,四舍五入到最接近的整数会更合乎逻辑,不是吗?如果是这样的话,4.5会变成5,5.5会变成6,这样看起来更直观。
【问题讨论】:
-
如果您想要特定的行为,请使用
Math.Round方法。当然,Convert.ToInt32() 确实已经在描述的行为中使用了这种方法。它与平均值有关,您转换并添加 6 个数字,其中一半向下舍入,另一半向上舍入,如果所有内容都向上舍入或向下舍入,您会得到更准确的数字。 -
@Ramhound 我很欣赏这一点,我只是好奇为什么在任何情况下甚至都偏爱奇数
-
当你说“当然,四舍五入到最接近的整数会更合乎逻辑?”,整个问题是有两个'最接近的整数'.. .
-
@Curt 我认为这通常是因为大多数学校(至少在英格兰)只教授四舍五入,其中 0.5 表示“上升”。我陷入了“这到底是怎么回事?”银行家四舍五入的陷阱。