日期:2014-05-16  浏览次数:20876 次

为什么Math.Round把0.5变成了0?
我的预期是4舍5入。我发现0.50000001的Round结果就是1,而0.5的Round结果就是0。

10.5的Round结果是10。Round的规则到底是什么样子? MSDN上说, The behavior of this method follows IEEE Standard 754, section 4,

能否解释一下?
------解决方案--------------------
四舍六入五成双

double c = Math.Round(5.5);   //6.0
double d = Math.Round(6.5);   //6.0

------解决方案--------------------
http://bbs.csdn.net/topics/390715321 

这个帖子对你有帮助,四舍五入的算法结果除了算法本事,还取决于数据类型。
------解决方案--------------------
banker's rounding, 向双数方向Round吧