有朋友问我,为何 print(1.2 -1.0 ==0.2)输出为 False,今天来一探究竟~
自己先来验证下:
>>>print(1.2-1.0==0.2)
False #还真滴是False
这是为啥呢???先来看看它的类型是啥
>>> type(1.2-1.0)
<class 'float'> #呦呵是浮点型的
继续向下验证,我们直接进行减
>>> 1.2-1.0
0.19999999999999996
阔以看到,结果并不是我们所认知的0.2,而是0.1好多,近似等于0.2。
到这基本上就知道为何是False了,原因如下:
1、1.2-1.0在Python中的运算结果是浮点数,其结果数值是个近似值。
2、"=="是进行比较两个对象的内容是不是一样,内存地址可以不一样,内容一样就行了。
3、还有个原因那就是运算的优先级,左边是浮点数,是不可能相等的。
4、最后就是计算机底层的进制问题了。
所以呢,需要进行精确计算的时候就要注意这个问题啦~
1014

被折叠的 条评论
为什么被折叠?



