• round分析


    Python 所谓的奇进偶弃,因为浮点数的表示在计算机中并不准确,用的时候可能要注意一下。

    测试如下

    1 print(round(10.4)) #10
    2 print(round(10.5)) #10
    3 print(round(10.6)) #11
    4 print()
    5 print(round(11.4)) #11
    6 print(round(11.5)) #12
    7 print(round(11.6)) #12

    由运行得出结论:

    1. 当小数点左边为偶数:小数点右边X<6,舍
    2. 当小数点左边为偶数:小数点右边X>=6,入
    3. 当小数点左边为奇数:小数点右边X<5,舍
    4. 当小数点左边为奇数:小数点右边X>=5,入

    所以当小数点左边分别为奇数和偶数的时候,小数点右边的取舍也分别对应两种取舍标准,换句话说,可以总结为两句话:

    当个位为奇数,小数部分>=0.5入,其余为舍

    当个位为偶数,小数部分>0.5入,其余为舍。

    我觉得并不是因为浮点数在计算机表示的问题。“4舍6入5看齐,奇进偶不进”计算机浮点数的表示是 ieee 定义的标准规则,如果 python 中存在,没道理其他语言中不存在。事实上是因为该取舍方法比过去的 "四舍五入" 方法在科学计算中更准确。而国家标准也已经规定使用 “4舍6入5看齐,奇进偶不进” 取代"四舍五入"。

    从统计学的角度上来讲,如果大量数据无脑的采用四舍五入会造成统计结果偏大,而"奇进偶舍"可以将舍入误差降到最低。因此在某种意义下,“奇进偶舍”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“奇进偶舍”使测量结果受到舍入误差的影响降到最低。

    奇进偶舍是一种比较精确比较科学的计数保留法,是一种数字修约规则。

  • 相关阅读:
    VMWare安装Solaris虚拟机的网络设置
    PeopleTools预警程序制作
    listener.ora增加监听端口
    用.Net Mage工具更新WPF ClickOnce应用程序部署清单
    基本测试方法用例场景
    Qt Vs msvc debug版本没有问题但release版本出现异常
    Qt 打包release发布问题
    Qt 鼠标悬浮按钮上出现浮窗效果
    Qt 样式对于QPushbutton 增加 hover press release效果
    阿里云ECS无法通过SSL远程链接问题。
  • 原文地址:https://www.cnblogs.com/yonyong/p/9166328.html
Copyright © 2020-2023  润新知