Python 2.7 Python被零除法

Python 2.7 Python被零除法,python-2.7,odoo-8,Python 2.7,Odoo 8,我试图计算persentage,并显示错误浮点除以零,这是我的代码 d4 = float(self.qty_normal)+float(self.qty_abnormal) d3 = float(self.qty_normal)+float(self.qty_recoveryabn) if self.flag_recovery == False: if self.qty_abnormal and self.qty_normal: p

我试图计算persentage,并显示错误浮点除以零,这是我的代码

    d4 = float(self.qty_normal)+float(self.qty_abnormal)
    d3 = float(self.qty_normal)+float(self.qty_recoveryabn)
    if self.flag_recovery == False:
        if self.qty_abnormal and self.qty_normal:
            pnormal =(self.qty_normal)/float(d3)*(100.00)
            pabnormal =(self.qty_abnormal)/float(d3)*(100.00)
            self.nursery_persentagea = pabnormal
            self.nursery_persentagen = pnormal
    if self.flag_recovery == True:
        if self.qty_recoveryabn and self.qty_normal:
            pnormal =(self.qty_normal)/float(d3)*(100.00)
            pabnormal =(self.qty_recoveryabn)/float(d3)*(100.00)
            self.nursery_persentagea = pabnormal
            self.nursery_persentagen = pnormal

帮我解决这个问题

你有几个分母相同的表达式-
d3
。在赋值后检查其值:

 d3 = float(self.qty_normal)+float(self.qty_recoveryabn)
它不应为零,否则此表达式将无法计算:

pnormal =(self.qty_normal)/float(d3)*(100.00)


(取决于
flag\u recovery
等)

不能将某个值除以零。只需在分割前设置一个检查,查看分数的下半部分是否为0。
pnormal =(self.qty_normal)/float(d3)*(100.00)