学习打卡内容搬运于乐学偶得公众号:乐学Fintech ,仅用于我学习打卡之用。也在此和学习Python的小伙伴分享~
我学习的是乐学偶得《零基础Python入门编程全栈量化AI》课程,属于零基础入门小白,嘿嘿(●’◡’●)如果有同班同学,欢迎一起打卡鸭!
Q:
整数和浮点的认识中,运算 0.1+0.1+0.1=0.30000000000000004 但是运算 0.1+0.1=0.2 0.1+0.1+0.1+0.1=0.4
0.1+0.1
0.2
.1+.1+.1
0.30000000000000004
.1+.1
0.2
.1+.1+.1+.1
0.4
.1+.1+.1+.1+.1
0.5
.1+.1+.1+.1+.1+.1+.1
0.7
为什么只有0.1+0.1+0.1后面的值是0.30000000000000004
A:
因为计算机硬件上表示浮点数都是 二进制的相除, 比如说0.125 其实是 1/10 + 2/100 + 5/1000 ,但是很多时候有一些小数值不能这样整除下来,比如说您刚刚举例的0.3,这种时候就出现了近似情况,所以您说的不同是近似程度,也可以说是因为精确程度造成的哦~
以下是Python官网的文档,非常详细的讲解了浮点型的局限性和近似的情况~
https://docs.python.org/3/tutorial/floatingpoint.html