Python浮点数(小数)运算误差的原因和解决办法
2024-09-02 01:00:36
原因解释:
浮点数(小数)在计算机中实际是以二进制存储的,并不精确。
比如0.1是十进制,转换为二进制后就是一个无限循环的数:
0.00011001100110011001100110011001100110011001100110011001100
python是以双精度(64bit)来保存浮点数的,后面多余的会被砍掉,所以在电脑上实际保存的已经小于0.1的值了,后面拿来参与运算就产生了误差。
解决办法:
使用decimal库
from decimal import *
a = Decimal('4.2')
b = Decimal('2.1')
c = a * b
最新文章
- 学习nodejs有感
- JAVA动手动脑异常处理
- Java &; Android Color-Background
- Android Activity返回键控制的两种方式
- asp.net服务器控件onclick带参数
- CentOS 7 安装、配置、使用 PostgreSQL 9.5及PostGIS2.2
- 关于mac环境下删除cocos2d-x环境变量配置的方法
- 正确打印含unicode字符的dict
- 通知(Toast+Notification)
- ProductHunt,TechCrunch和AppStore的差的值
- fragement切换动画效果的实现
- Google Earth影像数据破解之旅
- [国嵌攻略][153][I2C裸机驱动设计]
- Image Pipeline
- flex实现三栏等分布局
- JAVA面对对象(四)——抽象类
- SQL sysobjects 表 详解
- python 回溯法 记录
- 原生 JS 实现移动端 Touch 滑动反弹
- sqlmap注入分类
热门文章
- 图形化界面安装oracle报错Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.
- 移花接木:借助 IViewLocationExpander 更换 ASP.NET Core View Component 视图路径
- Generating Names and Classifying Names with Character-Level RNN
- InstallUtil.exe版本引起安装windows services 服务遇到的问题,System.BadImageFormatException
- WPF判断两个PNG图片是否碰撞
- phpexcel导出超过26列解决方案
- 使用VC2005编译真正的静态Qt程序 good
- chrome 仿手机
- 用C实现OOP面向对象编程(1)
- CheckSynchronize实现的不必要的复杂