This question already has answers here:
Floating point precision while using Python's max()
(4个答案)
5年前关闭。
我无法理解以下内容
上面的代码片段是for循环的一部分,结果如下所示:
在上面的cell_val等于10013.32945086但实际上持有10013.3294509
如印刷。
谢谢
(4个答案)
5年前关闭。
我无法理解以下内容
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
如印刷。
谢谢
最佳答案
当在函数中使用浮点值时,永远不要指望100%相等,也不要用于表示。
您可以使用double来获得更好的准确性,否则必须考虑max。要依靠的位数(例如,浮点数约为8,不确定其取决于的位数)。
当检查两个浮点数(或在函数/计算中使用相同的浮点数)时,请始终留有余量。
08-19 22:33