我无法理解以下
if cell_val==10013.32945086 :
print cell_val
print str(cell_val)
print repr(cell_val)
上面的代码片段是for循环的一部分,结果如下所示:
10013.3294509
10013.3294509
10013.329450859999
10013.3294509
10013.3294509
10013.329450859999
在上面的cell_val等于10013.32945086但实际上持有10013.3294509 正如印刷的那样。
由于
答案 0 :(得分:1)
在函数中使用浮点值时,不应期望浮点值100%相等,也不能用于表示。
您可以使用双精度来获得更好的准确性,否则您必须考虑最大值。要依赖的位数(例如浮点数约为8,不确定它取决于何处)。
检查两个浮点数(或在函数/计算中使用它后相同)时,请务必检查边距。