为了账号安全,请及时绑定邮箱和手机立即绑定

python 浮点数算不准的问题

python 浮点数算不准的问题

慕少森 2018-10-24 20:59:17
计算结果不符合预期, 如print(94 * .01)结果为:0.9400000000000001有没有方法自动的规避这种问题?(对于上面问题可以用 round(94 * .01, 2)解决, 但是有没有默认能算的准的自动的方法)
查看完整描述

1 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

这个不是python的问题,是浮点数误差,计算机本身就存在这个问题,搜索引擎很多解释.
我们要明确,哪怕除了这个,误差是肯定存在的,尤其是涉及到除法除不尽的时候,所以我们只能接受误差,并控制在合理范围内.

避免浮点数误差的办法,可以避免使用浮点数,比如将浮点数表示为分数形式.当然我不知道这是不是真的有效,不过在这里起码是有效了.

In [1]: 94*1/float(100)Out[1]: 0.94

实际上这个思路就是全部转化成整数,最后在输出为浮点数而已,对这个比较敏感的一般就是涉及财务的系统,大家的方案好像也都差不太多.


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 948 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信