Python中的round()函数原理

1. 问题:自己以前不知道这个差别,所以找了很久才找出这个bug,希望大家注意:

  看下示例程序:

  round()函数的功能是“四舍五入”,从以上结果可以发现,和我们普遍意义上理解的“四舍五入”差别还是很大的、

2. 原因:

  究其原因是因为round()的采用的四舍五入的标准是一种称为:“四舍六入五成双”的舍入方法:

  四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则,它的精确和科学是基于统计学上的:

    从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致

    结果偏向大数,使得误差产生积累进而产生系统误差,“四舍六入五成双”使测量结果受到舍入误差的影响降到最低。例如:1.15+1.25+1.35+1.45=5.2,若

  按“四舍五入”取一位小数计算:1.2+1.3+1.4+1.5=5.4,按“四舍六入五成双”计算,1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果。  

3. 总结:没有看到特别好的方法,一般比较普遍的方法是自己重写一个函数完成四舍五入的功能

转载于:https://www.cnblogs.com/Joyes1989/p/3150260.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值