2016-02-26 4 views
2

я пытаюсь вычислить процентных и показать ошибки поплавка деление на ноль, и это мой кодPython становится деление на ноль

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 

помочь мне решить эту проблему

+0

Вы не можете делить что-то на ноль. Просто установите проверку перед делением, чтобы увидеть, равна ли нижняя половина дроби 0. – NSNoob

ответ

1

У вас есть несколько выражений, которые имеют тот же знаменатель - d3. Проверьте свое значение после выполнения задания:

d3 = float(self.qty_normal)+float(self.qty_recoveryabn) 

Он не должен быть равен нулю, в противном случае это выражение не оценить:

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

ИЛИ

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

(зависит от flag_recovery и т.д.)

Смежные вопросы