浮点数计算需注意的事项
在Python中,我们可能需要经常使用浮点型(带小数点的数字)数据进行计算,这里有一个小小的坑,许多新手很容易踩进来。
浮点数据四则运算的小坑
从常识上来讲,3.2 + 2.1 = 5.3,但是,在Python中并不是这个结果,我们实际操作一下:
a = 3.2
b = 2.1
print(a+b)
你会发现,结果是5.300000000000001
有没有毁三观?计算机居然连这么简单的计算都会算错!
其实,这是因为二进制与十进制的区别。底层的计算机语言,都是用二进制编写的,比如0.1,用十进制表示是0.1,用二进制表示是10.000110011001100110011001100110011001100110011001101…实际上0.1在二进制中是无法被整除的,所以,就出现了这样的结果。
影响
所以,系统里,2.1+3.2 == 5.3 的结果是False
大家在做各种判断的时候,一定要注意这个小坑