首页 文章

ZeroDivisionError:即使我有一个零捕手,浮点除零

提问于
浏览
0

我是Python的新手 . 我在下面附上了一段代码 . constant_a&b是整数 . 运行此代码时,我收到以下错误:

回溯(最近一次调用最后一次):文件“U:\ V10_run2 \ process.py”,第209行,delta_mcs_2_gfx_percentage =(delta_mcs_2_gfx * 100)/ float(mcs)ZeroDivisionError:浮点除零

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) 这也没有帮助 . 有什么建议 ??

2 回答

  • 1

    尝试使用 == 而不是 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 测试精确对象身份 .

  • 6

    当您使用 == 时,您正在使用 is .

    is 检查相同的实例 . 这个东西和其他东西一样吗

    == 检查相同或不同实例的相等性 . 0 EQUAL到0.0?

    我敢打赌,你正在检查0是否为0.0,不是 . 然后,当你除以0.0时,你得到错误 .

相关问题