>>> 0.1+0.2
0.30000000000000004
>>>
>>> 0.1+0.2 == 0.3
False
>>> round(0.1+0.2,1) == 0.3
True
>>>
这个问题叫做 不确定尾数问题
不是只在python中存在 在很多编程语言中都存在
它涉及到了计算机对数字运算的内部实现原理
浮点数间运算存在不确定尾数,不是Bug
在计算机中所有数字都是由2进制表示
严格来说 53位二进制表示数字部分
由于二进制和十进制不存在严格的对等方式
所以0.1用二进制表示是一个无限小数
计算机只能截取其中的53位 无限接近0.1
计算机只会显示16位
round(x,d):对x进行四舍五入 d是小数截取位数