• python 四舍五入


    python 四舍五入

    • i = 1.35   float类型 主要属于不精确数    原因:float是二进制存储    实际存储:1.350000000000000088817841970012523233890533447265625
    • i = 1        int类型 属于精确数
    • i = decimal.Decimal('1.23')  decimal 专用10进制精确数
    • i = 1.5  一位小数,且小数为5 是float,但是精确数,二进制能够精确表示  1.5
    • int 和 decimal 可以运算  float 和 decimal 不能
    • 四舍五入,整体上会导致数据偏高
    • 舍(1,2,3,4)  入(5,6,7,8,9)  不变(0),从概率来讲入的多一些
    • 舍(1,2,3,4)  入(6,7,8,9)  不变(0)  平均(5) 为了更公平,5采取平均的方式  “奇取偶舍” 需要舍位的前一位,就是5的前一位,如果是奇数就入,偶数则舍
    • 尾数刚好是5才会这样选择,如果要舍弃的是两位,比如2.51,2.51明显离2近一点,就选择入
    • round(1.5)  2   round(2.5) 2
    • round(decimal('1.35')) 1.4   奇数就入,偶数则舍
    • 上面的数字是精确数,而不精确数由于本身转为10进制数时就多了或少了  (四舍五入对应的是10进制数)
    • 比如1.35        1.350000000000000088817841970012523233890533447265625   明显大于5,要入
    • 不精确类型的四舍五入
    • round(1.35, 1)    1.4

    总结:

    • 四舍五入 是对十进制数来说,所以float要转成10进制数才有意义
    • 四舍五入 是看数字距离哪个更近,与我们平时只看舍弃的最近一位不同   ROUND_HALF_EVEN策略
    • 1.51   平时只关心十分位,而python要更精确
  • 相关阅读:
    Python数据类型之列表
    Python数据类型之字符串
    《Python基础篇》之初识Python一
    Python运算符及案例
    linux之50条命令详解
    Python环境安装以及简单案例
    Java Date类的使用总结
    Java基础之Object类
    static关键字的内存分析
    Java基础之关键字static
  • 原文地址:https://www.cnblogs.com/wayland3/p/10949663.html
Copyright © 2020-2023  润新知