有时候:代码上数字计算可能会有如同下面的误差

原因:

这些错误是由底层CPU和IEEE 754标准通过自己的浮点单位去执行算术时的特征。 由于Python的浮点数据类型使用底层表示存储数据,因此你没办法去避免这样的误差。
a=3.2
b=2.1
print(a+b) # 5.300000000000001
print(a+b==5.3) # False

如果:对浮点数执行精确的计算操作,并且不希望有任何小误差的出现

解决:decimal 模块

from decimal import Decimal
a = Decimal('4.2')
b = Decimal('2.1')
print(a + b) # Decimal('6.3')
print((a + b) == Decimal('6.3')) # True
注:
# 真实世界中很少会要求精确到普通浮点数能提供的17位精度。 因此,计算过程中的那么一点点的误差是被允许的。
# 第二点就是,原生的浮点数计算要快的多-有时候你在执行大量运算的时候速度也是非常重要的

最新文章

  1. Java笔记:文件夹操作
  2. 【记录】ASP.NET MVC JsonResult JsonRequestBehavior AllowGet
  3. 内置函数dict
  4. nginx 的信号控制概述
  5. The report for triangle problem
  6. python学习-day14:集合,函数,格式化
  7. MVC 自定义IModelBinder实现json参数转Dictionary<string, string>
  8. thinkphp 3.23 第三方登录sdk集成包
  9. defer 要放在return之前
  10. 20141110--SQL视图
  11. mybatis关联查询
  12. iOS中数据库运用之前的准备-简单的数据库
  13. Android -- 官方下拉刷新SwipeRefreshLayout
  14. SWT的TableVierer的使用一
  15. 【开发技术】 java和JSP和JavaScript有什么区别
  16. JS中,如何判断一个被转换的数是否是NaN
  17. 冲刺博客NO.6
  18. css基础内容
  19. oracle网页客户端工具
  20. solr4.2增量索引之同步(修改,删除,新增)--转载

热门文章

  1. Linux:使用awk命令获取文本的某一行,某一列
  2. rpmcache - 缓存 RPM 打包头部
  3. shell --08 例子
  4. (转载)python判断一个字符串是否是小数
  5. Java调用MySql数据库函数
  6. Flutter的生命週期
  7. Web核心之Request对象
  8. Jmeter下载文件和保存文件
  9. Kattis - gcpc (treap模板)
  10. JS中数据结构之列表