Python 3.x 为什么我的;如果;不排除零的语句?
我必须在这里除以一些值,但是因为它是零,所以会给出一个“零除法误差”。 因此,我编写了以下代码Python 3.x 为什么我的;如果;不排除零的语句?,python-3.x,if-statement,divide-by-zero,Python 3.x,If Statement,Divide By Zero,我必须在这里除以一些值,但是因为它是零,所以会给出一个“零除法误差”。 因此,我编写了以下代码 如果列出实际收入[x]!=0.00或列出实际收入[x]!=0: 打印(“*************************”) 打印(列表\实际\收入[x]) 打印(“*************************”) 值\修订=浮动(列表\预测\收入[x])-浮动(列表\实际\收入[x]) 价值修订=价值修订/浮动(列出实际收入[x]) 我得到的错误是 value_rev = valu
如果列出实际收入[x]!=0.00或列出实际收入[x]!=0:
打印(“*************************”)
打印(列表\实际\收入[x])
打印(“*************************”)
值\修订=浮动(列表\预测\收入[x])-浮动(列表\实际\收入[x])
价值修订=价值修订/浮动(列出实际收入[x])
我得到的错误是
value_rev = value_rev / float(list_actual_revenue[x])
ZeroDivisionError: float division by zero
所以我决定打印出这些值,看看发生了什么
********************
3120.00
********************
********************
3055.00
********************
********************
11625.00
********************
********************
11937.50
********************
********************
3000.00
********************
********************
3000.00
********************
********************
3000.00
********************
********************
3000.00
********************
********************
3000.00
********************
********************
3000.00
********************
********************
0.00
********************
如您所见,最后一行是“0.00”。
我的问题是:如果“if语句”必须排除它,为什么0.00会出现?是的,我能感觉到你的痛苦。 如果您使用的是浮点运算,则永远不要使用“==”或“!=”运算符。 相反,请尝试检查list_actual_revenue[x]的绝对值是否大于0
或者,您可以尝试捕获错误,然后像下面这样处理零情况:请提供一些示例数据,以便我们可以。您是否在修改脚本后保存了它(以防万一)?您使用的数据类型是什么?因为
print(…)
打印两个尾随的零,所以它似乎不是float
,因为它只有一个尾随的零。一般来说,你不应该像以前那样比较float,因为比较小数字或小数点多的数字会表现出有趣的行为。使用list_actual_revenue[x]>0,看看会发生什么。为什么?你能为你的索赔提供一些证据吗?谷歌有大量的资料来解释为什么会出现这种情况。我想知道这与零除法错误和检查零是否相等有什么关系。此操作定义良好,没有任何准确性问题。