Floats print differently when shown in dictionary - python
我正在用以下简单代码创建字典:
1 2 3 4 5 6 7 8 9 10 | pixel_histogram = {} min_value = -0.2 max_value = 0.2 interval_size = (math.fabs(min_value) + math.fabs(max_value))/bins for i in range(bins): key = min_value+(i*interval_size) print key pixel_histogram[key] = 0 print pixel_histogram |
但我有点惊讶,因为我的指纹上有这些值:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #Printing keys -0.2 -0.16 -0.12 -0.08 -0.04 0.0 0.04 0.08 0.12 0.16 #Printing the dictionary {0.0: 0, -0.08000000000000002: 0, 0.15999999999999998: 0, -0.16: 0, 0.12: 0, -0.12000000000000001: 0, 0.08000000000000002: 0, -0.04000000000000001: 0, -0.2: 0, 0.03999999999999998: 0} |
我不明白为什么值是不同的,我如何解决这个问题。任何帮助都将不胜感激。谢谢。
python的
打印字典时,
字典使用
值相同。在第一种情况下,它们被截断或四舍五入为小数位。你一定熟悉数字的四舍五入吗?