因为存在浮点误差,一些我们认为相等的值会不相等导致找不到。
当然这只是针对计算产生的浮点值,如果直接表示的浮点值就没有关系,因为即使有误差,浮点值和字典中键的误差也是一样的,例如0.3的实际值为0.30000001,那么外面的直接表示的0.3和字典里的0.3都是0.30000001,所以是可以找到的。
floatdict = {0.3: 'get'}
print(0.3 in floatdict)
print(0.1 + 0.2 in floatdict)
print(floatdict[0.3])
print(floatdict[0.1 + 0.2])
输出:
True
False
get
Traceback (most recent call last):
File "test.py", line xx, in <module>
print(floatdict[0.1+0.2])
KeyError: 0.30000000000000004