程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

python初学者系列:奇怪的加法,结果错误

balukai 2025-04-09 14:09:09 文章精选 11 ℃

合集说明

这是一个针对python3初学者的合集,将持续更新。 本合集主要内容是一些代码案例,帮助初学者学习发散,主体包含知识点结果展示思路分析实现流程四大模块。初学者可以根据知识点判断是否继续阅读。

加法结果错误

1. 知识点

  • 计算的结果小数精度问题

2. 结果展示

3.思路分析

  1. 测试 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() 中需要填入两个数字:

  1. 第一个是需要修改的数字,例如上面的是 0.30000000000000004
  2. 第二个是修改后的小数位数,例如上面的是 1,表示保留一位小数

结果精度出现问题说明

  • 并非所有数字相加时都会出现精度偏差,例如:
print(0.2 + 0.2) # 输出是 0.4
  • 出现精度问题主要由于计算机在存储数字时,都是用二进制进行储存,而二进制的 浮点数(即小数) 无法精确某些十进制的数字,例如 0.10.2,他们的二进制是无限循环的,有限的内存为了储存这些数字,必须截断,因此导致精度问题。



课后作业:你能否找到其他计算时候出现精度问题的数字?快来留言区展示你的成果吧!

结尾

小数的精度失真一直是开发中的重点关注问题,除了 round() 方法,我们还会使用 decimal,未来在处理金钱关系的时候,可别因此算错账哦!

如果觉得这篇文章对你有启发,欢迎打赏一杯咖啡,支持原创!

Tags:

最近发表
标签列表