1、浮点数计算出错

a=1.1
b=2.2
a+b

输出:

出现上面的情况,主要还是因浮点数在计算机中实际是以二进制保存的,有些数不精确
比如说: 0.1是十进制,转化为二进制后它是个无限循环的数:
0.00011001100110011001100110011001100110011001100110011001100
而python是以双精度(64)位来保存浮点数,多余的位会被截掉,所以看到的是0.1,但在电脑上实际保存的已不是精确的0.1。

【注意】
这是二进制浮点数的自然性质:它不是 Python 中的一个 bug,也不是你的代码中的 bug。你会看到所有支持硬件浮点数算法的语言都会有这个现象。

——————————————————————————————
所以a+b 在计算机里就不等于3.3了

2、怎么改

对于需要精确十进制表示的情况,可以尝试使用 decimal 模块,它实现的十进制运算适合会计方面的应用和高精度要求的应用。

查看官方文档请点击这里

——————————————————————
例子:

from decimal import Decimal
a = Decimal('1.1')
b = Decimal('2.2')
a+b

输出:

完美,终于出来了3.3
——————————————————————————
更多用法: 设置精度,小数点后几位设置

from decimal import *
getcontext().prec = 6  #设置精度,小数点后6位
Decimal(1) / Decimal(7)

getcontext().prec = 28
Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')

————————————————————————————

出错总结

【注意】

1、写的时候要注意不要忘记了 ‘1.1’ 和 ‘2.2’ ,要加引号,不然等于没使用到
2、计算的时候 a,b 都要已经转换成Decimal 模式,不然会出错

来看看出错的方式:

第一种:

from decimal import Decimal
a = Decimal(1.1)
b = Decimal(2.2)
a+b

第二种:

from decimal import Decimal
a = Decimal('1.1')
b = 2.2
a+b

python浮点数精确计算 ,小数点精确计算问题相关推荐

  1. python小数点后任意位_Python计算开方、立方、圆周率,精确到小数点后任意位的方法...

    Python计算的位数 在电脑上做了一个实验,看看python能计算到多少位,一下是结果. x = math.sqrt((3)) print ("%.53f"%(x)) print ...

  2. php年龄,PHP 年龄计算函数(精确到天)

    PHP 年龄计算函数(精确到天) 发布于 2014-12-13 17:56:49 | 144 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  3. python 浮点数计算

    python 浮点数计算之 加减乘除 ------------------- 适用正负数整数浮点数 class float_subtraction():def __init__(self, _sbt, ...

  4. double小数点后最多几位_java,double精确到小数点第几位?

    2016-09-01 00:59樊振玲 客户经理 从左边第一个不是0的数字起,到精确到的位数止,所有的数字都叫做这个数的有效数字. 两位有效数字,就是找到前三位数字,对第三位四舍五入.例 public ...

  5. python学习之 利用蒙特卡洛方法计算PI值

    使用环境为python IDLE3.5. #利用蒙特卡洛方法计算PI值 from random import random from math import sqrt from time import ...

  6. Python 网页爬虫 文本处理 科学计算 机器学习 数据挖掘兵器谱

    Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱 2015-04-27 程序猿 程序猿 来自:我爱自然语言处理,www.52nlp. ...

  7. python图片相似度计算_python Opencv计算图像相似度过程解析

    这篇文章主要介绍了python Opencv计算图像相似度过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.相关概念 一般我们人区分谁是谁 ...

  8. 经纬度5位数和6位数差多少_各大在线地图,使用的经纬度坐标为什么都精确到小数点之后第六位...

    版权归作者所有,任何形式转载请联系作者. 作者:openGPS(来自豆瓣) 来源:https://www.douban.com/note/707875309/ 疑问由来 做过在线地图开发的同学,可能都 ...

  9. matlalb与python编程进行动力总成悬置模态计算对比——困惑待解

    matlalb与python编程进行动力总成悬置模态计算对比--困惑待解 1.困惑 以前用python编程算动力总成悬置系统模态时,有时有少量误差,困惑的很,为了搞清原因,将整个理论建模及算法重新研究 ...

  10. python图像识别之图片相似度计算

    作者 | a1131825850疯子  来源 | Python爬虫scrapy 1.背景 要识别两张图片是否相似,首先我们可能会区分这两张图是人物照,还是风景照等-对应的风景照是蓝天还是大海-做一系列 ...

最新文章

  1. sqlserver 编辑、修改字段说明(备注) sp_addextendedproperty
  2. pod出现include of non-modular header inside framework module 错误
  3. Windows进程与线程学习笔记(一)—— 进程结构体
  4. RabbitMQ—集群原理
  5. 用JS轻松实现一个录音、录像、录屏工具库
  6. 服务器选购seo优化规则,网站seo优化注意事项1—域名和服务器选择
  7. Netty 5用户指南
  8. 转行HTML5前端开发,该怎么学才能最快入门
  9. 【Python】ModuleNotFoundError: No module named 'pandas.io.data'
  10. jenkins 手动执行_Win下Jenkins-2.138源码编译及填坑笔记
  11. 时序图数仓AbutionGraph在公安金融场景的应用
  12. ABAP 供应商主数据比较常用的表
  13. 知识付费产品复购率低成难题
  14. 数据结构——图的十字链表实现
  15. js计算时间差,包括计算,天,时,分,秒
  16. 进程间通信和线程间通信的几种方式
  17. 推荐:Nginx 会话黏着一致性解决
  18. C中的 feof() 和 EOF
  19. Flutter企业级项目实战——博时App
  20. 小程序登录授权code

热门文章

  1. Unity3D教程:Unity批量处理修改烘培LightMap
  2. 【JavaScript】过了一年,懒癌患者终于整理了一下『手写Promise A+』
  3. Excel怎么快速制作分数条
  4. 查询计算机系统是否永久激活
  5. 用C语言写一个通信软件,客户端可以实现文字聊天,文件传输,建立群聊;服务端可以创建账号吧...
  6. JsonSchema
  7. 使用vue-video-player做H5直播播放
  8. 利用BS模型计算欧式看涨期权价格——基于中国沪深300ETF看涨期权_20200524_
  9. 已经共享了,如何在另一台电脑找到共享文件?
  10. Maya模型动画导入UE4的问题