ZeroDivisionError: float division by zero even though I have a zero catcher
ZeroDivisionError: float division by zero even though I have a zero catcher
我对 Python 有点陌生。我在下面附上了一段代码。 constant_a & b 是整数。在 运行 这段代码中,出现以下错误:
Traceback (most recent call last): File "U:\V10_run2\process.py",
line 209, in
delta_mcs_2_gfx_percentage=(delta_mcs_2_gfx*100)/float(mcs) ZeroDivisionError: float division by zero
mcs=hash["MCF"]*constant_a/constant_b
if mcs is 0:
delta__percentage=-100
else:
delta__percentage=(delta*100)/mcs
正如错误所说,我认为这是因为 python 试图进行整数除法并将 mcs 舍入为 0,但我也尝试了 float(delta*100)/float(mcs)
,但也没有帮助。有什么建议吗??
尝试使用 ==
而不是 is
:
a = 0.0
if a is 0:
print("is zero")
else:
print("not zero")
# 'not zero'
if a == 0:
print("== zero")
else:
print("not zero")
# '== zero'
有关更多说明,请参阅 this post。本质上,==
测试相等性,is
测试精确的对象标识。
您在应该使用 ==
的时候使用了 is
。
is
检查相同的实例。这个东西和这个其他东西
是一样的吗
==
检查相同或不同实例的相等性。 0 等于 0.0 吗?
我敢打赌,您正在检查 0 是否为 0.0,事实并非如此。然后,当您除以 0.0 时,您会得到错误。
我对 Python 有点陌生。我在下面附上了一段代码。 constant_a & b 是整数。在 运行 这段代码中,出现以下错误:
Traceback (most recent call last): File "U:\V10_run2\process.py", line 209, in delta_mcs_2_gfx_percentage=(delta_mcs_2_gfx*100)/float(mcs) ZeroDivisionError: float division by zero
mcs=hash["MCF"]*constant_a/constant_b
if mcs is 0:
delta__percentage=-100
else:
delta__percentage=(delta*100)/mcs
正如错误所说,我认为这是因为 python 试图进行整数除法并将 mcs 舍入为 0,但我也尝试了 float(delta*100)/float(mcs)
,但也没有帮助。有什么建议吗??
尝试使用 ==
而不是 is
:
a = 0.0
if a is 0:
print("is zero")
else:
print("not zero")
# 'not zero'
if a == 0:
print("== zero")
else:
print("not zero")
# '== zero'
有关更多说明,请参阅 this post。本质上,==
测试相等性,is
测试精确的对象标识。
您在应该使用 ==
的时候使用了 is
。
is
检查相同的实例。这个东西和这个其他东西
==
检查相同或不同实例的相等性。 0 等于 0.0 吗?
我敢打赌,您正在检查 0 是否为 0.0,事实并非如此。然后,当您除以 0.0 时,您会得到错误。