python 四舍五入

本文主要介绍Python中的四舍五入。阐述了float、int和decimal类型的特点,指出int和decimal可运算,float和decimal不能。说明了四舍五入可能导致数据偏高,介绍了“奇取偶舍”规则,还提及不精确数四舍五入的情况,强调四舍五入是针对十进制数,采用ROUND_HALF_EVEN策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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要更精确

 

转载于:https://www.cnblogs.com/wayland3/p/10949663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值