Python之0.35+0.3+0.35不等于1

  在Python3中,数值类型有int、float、bool、complex四种类型。float型即为浮点型,用来表示实数。然而,笔者在实际运用中,却发现事实:
  这里写图片描述
  这是不是有点不可思议?然而我们还可以举出更多的例子:
  这里写图片描述
  这究竟是什么原因呢?笔者在python的官网上找到了原因。原来,大多数的float型数值并不能以精确的形式在计算机中表示出来,只能以十分接近原数值的形式储存,因此在计算过程中会出现小的误差。这并不是Python的BUG,而是计算机在表示实际时普遍存在的问题。
  那么,Python是如何解决这个问题的呢?答案是decimal模块的Decimal函数,这个模块表示的数值类型是以我们人类在实际计算过程为参考的,所以能很好地解决这个问题,需要注意的是,Decimal函数接受的参数为整数或字符型。
  这里写图片描述
  另外,读者也可以了解下fractions模块,它是计算分数的利器,因为在Python中 13 是无法精确表示出来的!
  这里写图片描述
  



  本次分享到此结束,欢迎大家批评与交流~~
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值