网站首页 > 文章精选 正文
合集说明
这是一个针对python3初学者的合集,将持续更新。 本合集主要内容是一些代码案例,帮助初学者学习发散,主体包含知识点、结果展示、思路分析、实现流程四大模块。初学者可以根据知识点判断是否继续阅读。
加法结果错误
1. 知识点
- 计算的结果小数精度问题
2. 结果展示
3.思路分析
- 测试 0.1 + 0.2 求和,并打印
4.实现流程
4.1 0.1+0.2
代码非常简单,如下:
print(0.1 + 0.2)
输出结果:
按照数学的计算方法,0.1+0.2应该等于0.3,为什么这里和实际有出路?
4.2 解决方案
我们可以使用 round() 方法人为设定小数精度,例如:
print(round(0.1 + 0.2, 1)) # 输出是 0.3
round() 中需要填入两个数字:
- 第一个是需要修改的数字,例如上面的是 0.30000000000000004
- 第二个是修改后的小数位数,例如上面的是 1,表示保留一位小数
结果精度出现问题说明
- 并非所有数字相加时都会出现精度偏差,例如:
print(0.2 + 0.2) # 输出是 0.4
- 出现精度问题主要由于计算机在存储数字时,都是用二进制进行储存,而二进制的 浮点数(即小数) 无法精确某些十进制的数字,例如 0.1、0.2,他们的二进制是无限循环的,有限的内存为了储存这些数字,必须截断,因此导致精度问题。
课后作业:你能否找到其他计算时候出现精度问题的数字?快来留言区展示你的成果吧!
结尾
小数的精度失真一直是开发中的重点关注问题,除了 round() 方法,我们还会使用 decimal,未来在处理金钱关系的时候,可别因此算错账哦!
如果觉得这篇文章对你有启发,欢迎打赏一杯咖啡,支持原创!
猜你喜欢
- 2025-04-09 Python中的`raise`语句:如何优雅地控制错误
- 2025-04-09 python入门050:认识异常(异常 python)
- 2025-04-09 Python 中的“No Module Named”错误修复完整指南
- 2025-04-09 python异常处理的四种方式,不只是try
- 2025-04-09 Python异常处理(python异常处理中不会用到的关键字)
- 2025-04-09 python中的IndentationError异常错误解决步骤
- 2025-04-09 详细介绍一下Python中的异常处理机制?
- 2025-04-09 python 列表常见错误提示(python出错)
- 2025-04-09 「Python编程规范」Python中的语法错误
- 2025-04-09 Python 中的异常处理(python 异常处理方法)
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)