Browse Source

fix:年化计算时,除数不能作为0

Roc 2 years ago
parent
commit
9fd2d58e94
1 changed files with 10 additions and 2 deletions
  1. 10 2
      models/edb_data_calculate_nh.go

+ 10 - 2
models/edb_data_calculate_nh.go

@@ -291,7 +291,11 @@ func refreshAllCalculateNh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *E
 			}
 
 			// 当前值占全年比重
-			divVal := decimal.NewFromFloat(tmpVal).Div(decimal.NewFromFloat(yearLastVal))
+			tmpYearLastVal := decimal.NewFromFloat(yearLastVal)
+			if tmpYearLastVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
+				continue
+			}
+			divVal := decimal.NewFromFloat(tmpVal).Div(tmpYearLastVal)
 			divValList = append(divValList, divVal)
 		}
 
@@ -307,7 +311,11 @@ func refreshAllCalculateNh(to orm.TxOrmer, edbInfoId, source int, fromEdbInfo *E
 		}
 
 		// 当前计算出来的结果
-		currVal, _ := decimal.NewFromFloat(v.Value).Div(divValSum.Div(decimal.NewFromInt(int64(lenDivValList)))).Round(4).Float64()
+		tmpDivVal := divValSum.Div(decimal.NewFromInt(int64(lenDivValList)))
+		if tmpDivVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
+			continue
+		}
+		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(4).Float64()
 
 		// 判断年化指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {