Python之执行精确的浮点数运算
2024-09-08 10:07:14
有时候:代码上数字计算可能会有如同下面的误差
原因:
这些错误是由底层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位精度。 因此,计算过程中的那么一点点的误差是被允许的。
# 第二点就是,原生的浮点数计算要快的多-有时候你在执行大量运算的时候速度也是非常重要的
最新文章
- Java笔记:文件夹操作
- 【记录】ASP.NET MVC JsonResult JsonRequestBehavior AllowGet
- 内置函数dict
- nginx 的信号控制概述
- The report for triangle problem
- python学习-day14:集合,函数,格式化
- MVC 自定义IModelBinder实现json参数转Dictionary<;string, string>;
- thinkphp 3.23 第三方登录sdk集成包
- defer 要放在return之前
- 20141110--SQL视图
- mybatis关联查询
- iOS中数据库运用之前的准备-简单的数据库
- Android -- 官方下拉刷新SwipeRefreshLayout
- SWT的TableVierer的使用一
- 【开发技术】 java和JSP和JavaScript有什么区别
- JS中,如何判断一个被转换的数是否是NaN
- 冲刺博客NO.6
- css基础内容
- oracle网页客户端工具
- solr4.2增量索引之同步(修改,删除,新增)--转载