位置: 编程技术 - 正文

python中实现精确的浮点数运算详解(python如何精确小数)

编辑:rootadmin

推荐整理分享python中实现精确的浮点数运算详解(python如何精确小数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python精准计算,python 精确匹配,python如何精确小数,python精准计算,python精准计算,python精确到整数,python 精确度,python怎么能精确计算,内容如对您有帮助,希望把文章链接给更多的朋友!

为什么说浮点数缺乏精确性?

在开始本文之前,让我们先来谈谈浮点数为什么缺乏精确性的问题,其实这不是Python的问题,而是实数的无限精度跟计算机的有限内存之间的矛盾。

举个例子,假如说我只能使用整数(即只精确到个位,计算机内的浮点数也只有有限精度,以C语言中的双精度浮点数double为例,精度为个二进制位),要表示任意实数(无限精度)的时候我就只能通过舍入(rounding)来近似表示。

比如1.2我会表示成1,2.4表示成2,3.6表示成4.

所以呢?

在算1.2 - 1.2的时候,由于计算机表示的问题,我算的实际上是1 - 1,结果是0,碰巧蒙对了;

在算1.2 + 1.2 - 2.4的时候,由于计算机表示的问题,我算的实际上是1 + 1 - 2,结果是0,再次蒙对了;

但是在算1.2 + 1.2 + 1.2 - 3.6的时候,由于计算机表示的问题,我算的实际上是1 + 1 + 1 - 4,结果是-1,运气没那么好啦!

这里的1.2, 2.4, 3.6就相当于你问题里的0.1, 0.2和0.3,1, 2, 4则是真正在计算机内部进行运算的数值,我说清楚了吗?

python中实现精确的浮点数运算详解(python如何精确小数)

其他请看IEEE 浮点数标准,比如CSAPP第二章啥的(虽然估计你没兴趣看)。

另:不仅仅是浮点数的在计算机内部的表示有误差,运算本身也可能会有误差。比如整数2可以在计算机内准确表示,但是要算根号2就有误差了;再比如两个浮点数相除,本来两个数都是精确表示的,但除的结果精度却超出了计算机内实数的表示范围,然后就有误差了。

好了,下面话不多说了,开始本文的正文:

起步

浮点数的一个普遍的问题是它们不能精确的表示十进制数。

这是由于底层 CPU 和IEEE 标准通过自己的浮点单位去执行算术时的特征。看似有穷的小数, 在计算机的二进制表示里却是无穷的。

一般情况下,这一点点的小误差是允许存在的。如果不能容忍这种误差(比如金融领域),那么就要考虑用一些途径来解决这个问题了。

Decimal

使用这个模块不会出现任何小误差。

尽管代码看起来比较奇怪,使用字符串来表示数字,但是 Decimal 支持所有常用的数学运算。 decimal 模块允许你控制计算的每一方面,包括数字位数和四舍五入。在这样做之前,需要创建一个临时上下文环境来改变这种设定:

由于 Decimal 的高精度数字自然也就用字符串来做展示和中转。

总结

总的来说,当涉及金融领域时,哪怕是一点小小的误差在计算过程中都是不允许的。因此 decimal 模块为解决这类问题提供了方法。

好了,

标签: python如何精确小数

本文链接地址:https://www.jiuchutong.com/biancheng/372150.html 转载请保留说明!

上一篇:利用Python-iGraph如何绘制贴吧/微博的好友关系图详解(利用python-Flask框架搭建本地数据可视化网站 原创)

下一篇:python安装numpy&安装matplotlib& scipy的教程(python2.7安装numpy)

  • 结转成本时是否含税
  • 企业员工的高铁票进项税如何申报
  • 本期免税额怎么填写
  • 公司刚注册之后怎么办
  • 权益性投资收益的账务处理
  • 营改增之前
  • 汽车公司场地租金怎么算
  • 自己承担所有
  • 个人开增值税普票有没有限额
  • 基金公司管理费收入怎么入账
  • 内帐怎么做增值税处理
  • 金税盘费用如何抵扣
  • 金税盘不能清卡是啥原因
  • 公司结算工资
  • 异地预缴的税款是抵减全部的税款吗
  • 污水处理费计入哪里
  • 企业所得税季度申报时间
  • 装修费可以作为开办费吗
  • 去年开的增值税普通发票今年可以作废吗
  • 个人独资企业每月开票金额
  • win10永久激活2021
  • 如何删除文档中多余的页
  • php如何实现伪静态
  • 消费税有减免政策吗
  • Msssrv.exe - Msssrv是什么进程 有什么用
  • 苹果手机铃声删除在哪里
  • 蝴蝶兰的养殖方法和注意事项 盆栽蝴蝶兰烂根
  • 新用户注册表单代码
  • 事业单位无职务人员称什么
  • 雪花 (© TothGaborGyula/Getty Images Plus)
  • 企业所得税申报表模板
  • 目标检测数据集
  • php读取文件内容的方法和函数
  • 织梦前台的菜单怎么换
  • xml 入门
  • 冲掉应收账款
  • 广告公司纳税人类型
  • wordpress!
  • mongodb视频教程
  • 小微企业城建税减免政策
  • 工资结算汇总表怎么填
  • mysql数据库环境
  • 生育津贴到公司账户了多久给个人
  • 可供出售金融资产新准则叫什么
  • 关联方交易金额达到多少算转移定价
  • 销售成品油的税率
  • 汽车销售公司赠车合法吗
  • 单品毛利润计算方法
  • 押金退还需要多久
  • 工程材料票占工程款的比例
  • 自产自销免税农产品需要缴纳印花税吗
  • 无形资产入股交税吗
  • 结转已售材料成本6000元
  • 工业企业增值税纳税义务发生时间
  • 数据结构 简书
  • u深度pe装机工具使用教程win7
  • 如何设置windows
  • windows server 2008 r2开启远程访问
  • 笔记本带u
  • centos彻底删除文件命令
  • award bios设置图解教程
  • win8应用商店废了
  • 软件源推荐
  • onionwormimmune.exe是什么
  • win8.1系统电脑设置闪退
  • win7运行窗口在哪
  • cocos2dx安装win7教程视频
  • ftp下载怎么用
  • jQuery实现两个下拉列表关联
  • Android HandlerThread 实例
  • shell中特殊字符的含义
  • css中显示
  • windows pytorch
  • javascript基于什么的语言
  • javascript XMLHttpRequest对象全面剖析
  • python3.9怎么用
  • javascript图片切换代码
  • jquery22插件网
  • 税控ic卡就是税控盘吗
  • 代理记账公司里的公司文件盒书写样式图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设