美文网首页
关于Rounding的一些事情

关于Rounding的一些事情

作者: 08938db7883c | 来源:发表于2018-07-10 11:02 被阅读0次

我们知道知道在截取近似值的时候,常采取四舍五入的做法,但是这并不十分科学。

如果有很多数据要做Rounding,那么4舍6入,没有问题,因为从统计意义来说,“舍”与“入”带来的偏差会相互抵消;但是如果要舍的那一位偏偏是5,问题就来了。

如果所有的5都“入”上去,就没有地方可以抵消这种影响,就会造成数据整体偏大。

国际上比较通行的做法是“四舍五入取偶”,也就是说,取舍之后让数字的最后一位为偶。举例如下:
1.25,舍,1.2;
1.35,进,1.4;
1.45,舍,1.4;
1.55,进,1.6;
……

这样做,在统计上就会有一半的5采取“入”,一半的5采取“舍”,相互抵消,保持数据整体准确。

所以在C#编码中,如果需要简单的“四舍五入”,就需要指定MidpointRounding参数。

            // 1.2
            var test1 = decimal.Round(1.15M, 1, MidpointRounding.AwayFromZero);

            //1.3
            var test2 = decimal.Round(1.25M, 1, MidpointRounding.AwayFromZero);

其它语言请自行搜索。

以上。

相关文章

网友评论

      本文标题:关于Rounding的一些事情

      本文链接:https://www.haomeiwen.com/subject/xdlfpftx.html