Browse Source

Merge branch 'hotfix/fix_edb_calculate_tbz' of eta_server/eta_index_lib into master

xyxie 6 months ago
parent
commit
33541ad9cd

+ 1 - 1
logic/profit_chart_info.go

@@ -714,7 +714,7 @@ func handleProfitResultData(baseEdbInfo *models.EdbInfo, yDataList []YData, earl
 							newYDataList[yIndex].XEdbInfoIdList = append(newYDataList[yIndex].XEdbInfoIdList, 0)
 
 							// 赋值平均值
-							tmpVal, _ := decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(int64(tmpNum + 1)))).RoundCeil(4).Float64()
+							tmpVal, _ := decimal.NewFromFloat(preVal).Add(hcValDeci.Mul(decimal.NewFromInt(int64(tmpNum + 1)))).Round(4).Float64()
 							newYDataList[yIndex].Value = append(newYDataList[yIndex].Value, tmpVal)
 						}
 					}

+ 7 - 7
models/base_calculate.go

@@ -394,7 +394,7 @@ func tbzDiv(a, b float64) float64 {
 	if b != 0 {
 		af := decimal.NewFromFloat(a)
 		bf := decimal.NewFromFloat(b)
-		val, _ = af.Div(bf).Sub(decimal.NewFromFloat(1)).RoundCeil(4).Float64()
+		val, _ = af.Div(bf).Sub(decimal.NewFromFloat(1)).Round(4).Float64()
 	}
 	return val
 }
@@ -494,7 +494,7 @@ func (obj BaseCalculate) Tcz() (dateDataMap map[time.Time]float64, err error, er
 func tczSub(a, b float64) float64 {
 	af := decimal.NewFromFloat(a)
 	bf := decimal.NewFromFloat(b)
-	val, _ := af.Sub(bf).RoundCeil(4).Float64()
+	val, _ := af.Sub(bf).Round(4).Float64()
 	return val
 }
 
@@ -559,7 +559,7 @@ func (obj BaseCalculate) Nszydpjjs() (dateDataMap map[time.Time]float64, err err
 		}
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
-		val, _ := af.Div(bf).RoundCeil(4).Float64()
+		val, _ := af.Div(bf).Round(4).Float64()
 
 		dateDataMap[currentDate] = val
 	}
@@ -636,7 +636,7 @@ func hbzDiv(current, pre float64) (val float64, ok bool) {
 	}
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
-	val, _ = currentVal.Sub(preVal).Div(preVal).RoundCeil(4).Float64()
+	val, _ = currentVal.Sub(preVal).Div(preVal).Round(4).Float64()
 	//valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
 	ok = true
 
@@ -703,7 +703,7 @@ func (obj BaseCalculate) Hcz() (dateDataMap map[time.Time]float64, err error, er
 func hczDiv(current, pre float64) float64 {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
-	val, _ := currentVal.Sub(preVal).RoundCeil(4).Float64()
+	val, _ := currentVal.Sub(preVal).Round(4).Float64()
 	//valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
 
 	return val
@@ -1014,7 +1014,7 @@ func (obj BaseCalculate) TimeShift() (dateDataMap map[time.Time]float64, err err
 
 		newDate := currentDate.AddDate(0, 0, shiftDay)
 
-		val, _ := decimal.NewFromFloat(currentItem.Value).RoundCeil(4).Float64()
+		val, _ := decimal.NewFromFloat(currentItem.Value).Round(4).Float64()
 
 		dateDataMap[newDate] = val
 	}
@@ -1142,7 +1142,7 @@ func cjjxSub(currValue float64, pastValue []float64) (value float64, ok bool) {
 		tmpVal := decimal.NewFromFloat(pastValue[k])
 		bf = bf.Add(tmpVal)
 	}
-	value, _ = af.Sub(bf.Div(numDecimal)).RoundCeil(4).Float64()
+	value, _ = af.Sub(bf.Div(numDecimal)).Round(4).Float64()
 	ok = true
 
 	return

+ 1 - 1
models/base_predict_from_calculate.go

@@ -492,7 +492,7 @@ func refreshAllPredictCalculate(to orm.TxOrmer, edbInfoIdList []*EdbInfo, edbInf
 				removeDateList = append(removeDateList, sk)
 				continue
 			}
-			saveValue := decimal.NewFromFloat(calVal).RoundCeil(4).String() //utils.SubFloatToString(calVal, 4)
+			saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
 			if existVal, ok := dataMap[sk]; !ok {
 				dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 				timestamp := dataTime.UnixNano() / 1e6

+ 1 - 1
models/edb_data_calculate_avg.go

@@ -402,7 +402,7 @@ func (obj CalculateAvg) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
 		calVal = calVal / float64(len(sv))
 		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
-		saveValue := decimal.NewFromFloat(calVal).RoundCeil(4).String()
+		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
 		if existVal, ok := dataMap[sk]; !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 			timestamp := dataTime.UnixNano() / 1e6

+ 1 - 1
models/edb_data_calculate_cjjx.go

@@ -462,6 +462,6 @@ func CjjxSub(currValue float64, pastValue []float64) (value string) {
 	}
 	val, _ := af.Sub(bf.Div(numDecimal)).Float64()
 	//valStr := utils.SubFloatToString(val, 4)
-	valStr := decimal.NewFromFloat(val).RoundCeil(4).String()
+	valStr := decimal.NewFromFloat(val).Round(4).String()
 	return valStr
 }

+ 1 - 1
models/edb_data_calculate_hbz.go

@@ -297,6 +297,6 @@ func HbzDiv(current, pre float64) string {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
 	val, _ := currentVal.Sub(preVal).Div(preVal).Float64()
-	valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
+	valStr := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(val, 4)
 	return valStr
 }

+ 1 - 1
models/edb_data_calculate_hcz.go

@@ -327,6 +327,6 @@ func HczDiv(current, pre float64) string {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)
 	val, _ := currentVal.Sub(preVal).Float64()
-	valStr := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(val, 4)
+	valStr := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(val, 4)
 	return valStr
 }

+ 4 - 4
models/edb_data_calculate_ljz.go

@@ -378,7 +378,7 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).RoundCeil(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}
@@ -440,7 +440,7 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).RoundCeil(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}
@@ -505,7 +505,7 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(allDays))
-			val, _ := initValAndMonthT.Div(daysT).RoundCeil(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", allDays, initVal, days, val)
 
 			valueMap[lastNewDate] = val
@@ -563,7 +563,7 @@ func (obj Ljz) refresh(to orm.TxOrmer, edbInfoId, source, subSource int, edbInfo
 
 			daysT := decimal.NewFromInt(int64(days))
 			initValAndMonthT := decimal.NewFromFloat(initVal * float64(monthDays))
-			val, _ := initValAndMonthT.Div(daysT).RoundCeil(4).Float64()
+			val, _ := initValAndMonthT.Div(daysT).Round(4).Float64()
 			fmt.Printf("最新值 计算公式:%d*%f/(%d) = %f\n", monthDays, initVal, days, val)
 			valueMap[lastNewDate] = val
 		}

+ 2 - 2
models/edb_data_calculate_nhcc.go

@@ -561,7 +561,7 @@ func refreshAllCalculateNhcc(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).RoundCeil(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -583,7 +583,7 @@ func refreshAllCalculateNhcc(to orm.TxOrmer, edbInfo *EdbInfo, existItemA, exist
 		bDecimal := decimal.NewFromFloat(bData.Value)
 		b2Decimal := decimal.NewFromFloat(b2Val)
 
-		val, _ := bDecimal.Sub(b2Decimal).RoundCeil(4).Float64()
+		val, _ := bDecimal.Sub(b2Decimal).Round(4).Float64()
 
 		// 判断之前有没有该数据
 		existData, ok := dataMap[currDate]

+ 1 - 1
models/edb_data_calculate_nszydbpjjs.go

@@ -282,7 +282,7 @@ func refreshAllCalculateNszydpjjs(to orm.TxOrmer, edbInfoId, source, subSource,
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
 		val, _ := af.Div(bf).Float64()
-		valStr := decimal.NewFromFloat(val).RoundCeil(4).String()
+		valStr := decimal.NewFromFloat(val).Round(4).String()
 
 		if existVal, existOk := existDataMap[av]; !existOk {
 			currentDate, err := time.ParseInLocation(utils.FormatDate, av, time.Local)

+ 1 - 1
models/edb_data_calculate_sum.go

@@ -409,7 +409,7 @@ func (obj CalculateSum) refresh(to orm.TxOrmer, edbInfoId, source, subSource int
 
 		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
-		saveValue := decimal.NewFromFloat(calVal).RoundCeil(4).String()
+		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
 		if existVal, ok := dataMap[sk]; !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
 			timestamp := dataTime.UnixNano() / 1e6

+ 1 - 1
models/edb_data_calculate_tbz.go

@@ -453,7 +453,7 @@ func TbzDiv(a, b float64) string {
 		bf := decimal.NewFromFloat(b)
 		val, _ := af.Div(bf).Float64()
 		val = val - 1
-		valStr = decimal.NewFromFloat(val).RoundCeil(4).String()
+		valStr = decimal.NewFromFloat(val).Round(4).String()
 	} else {
 		valStr = "0"
 	}

+ 1 - 1
models/edb_data_calculate_tcz.go

@@ -445,6 +445,6 @@ func TczSub(a, b float64) string {
 	bf := decimal.NewFromFloat(b)
 	val, _ := af.Sub(bf).Float64()
 	//valStr := utils.SubFloatToString(val, 4)
-	valStr := decimal.NewFromFloat(val).RoundCeil(4).String()
+	valStr := decimal.NewFromFloat(val).Round(4).String()
 	return valStr
 }

+ 1 - 1
models/edb_data_calculate_time_shift.go

@@ -293,7 +293,7 @@ func refreshAllCalculateTimeShift(to orm.TxOrmer, edbInfoId, source, subSource,
 
 			timestamp := newDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
-			valStr := decimal.NewFromFloat(currentItem.Value).RoundCeil(4).String()
+			valStr := decimal.NewFromFloat(currentItem.Value).Round(4).String()
 			if existVal, ok := existDataMap[newDate.Format(utils.FormatDate)]; !ok {
 				isAdd = true
 				addSql += GetAddSql(edbInfoIdStr, edbCode, newDate.Format(utils.FormatDate), timestampStr, valStr)

+ 2 - 2
models/predict_edb.go

@@ -228,7 +228,7 @@ func CalculateByRuleBy9(to orm.TxOrmer, rule CalculateRule) (resultDataList []*E
 		// 移除不存在的日期
 		delete(removeDateMap, sk)
 
-		saveValue := decimal.NewFromFloat(calVal).RoundCeil(4).String() //utils.SubFloatToString(calVal, 4)
+		saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
 		existPredictEdbRuleData, ok := dataMap[sk]
 		if !ok {
 			dataTime, _ := time.ParseInLocation(utils.FormatDate, sk, time.Local)
@@ -402,7 +402,7 @@ func CalculateByRuleByRuleLineNh(to orm.TxOrmer, predictEdbInfo EdbInfo, predict
 				continue
 			}
 
-			saveValue := decimal.NewFromFloat(val).RoundCeil(4).String() //utils.SubFloatToString(calVal, 4)
+			saveValue := decimal.NewFromFloat(val).Round(4).String() //utils.SubFloatToString(calVal, 4)
 			existPredictEdbRuleData, ok := dataMap[currentDateStr]
 			if !ok {
 				timestamp := currentDate.UnixNano() / 1e6

+ 2 - 2
models/predict_edb_data_calculate_nhcc.go

@@ -467,7 +467,7 @@ func refreshAllPredictCalculateNhcc(to orm.TxOrmer, edbInfo, firstEdbInfo, secon
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).RoundCeil(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -489,7 +489,7 @@ func refreshAllPredictCalculateNhcc(to orm.TxOrmer, edbInfo, firstEdbInfo, secon
 		bDecimal := decimal.NewFromFloat(bData.Value)
 		b2Decimal := decimal.NewFromFloat(b2Val)
 
-		val, _ := bDecimal.Sub(b2Decimal).RoundCeil(4).Float64()
+		val, _ := bDecimal.Sub(b2Decimal).Round(4).Float64()
 		// 判断之前有没有该数据
 		existData, ok := dataMap[currDate]
 		if !ok { //不存在那么就添加吧

+ 1 - 1
models/predict_edb_data_calculate_nszydbpjjs.go

@@ -304,7 +304,7 @@ func refreshAllPredictCalculateNszydpjjs(to orm.TxOrmer, edbInfoId, source, subS
 		af := totalVal //decimal.NewFromFloat(totalVal)
 		bf := decimal.NewFromFloat(float64(valArrLen))
 		val, _ := af.Div(bf).Float64()
-		valStr := decimal.NewFromFloat(val).RoundCeil(4).String()
+		valStr := decimal.NewFromFloat(val).Round(4).String()
 
 		// 实际数据的值
 		if fromEdbInfo.LatestDate == av {

+ 1 - 1
models/predict_edb_data_calculate_time_shift.go

@@ -264,7 +264,7 @@ func refreshAllPredictCalculateTimeShift(to orm.TxOrmer, edbInfoId, source, subS
 
 			timestamp := newDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
-			valStr := decimal.NewFromFloat(currentItem.Value).RoundCeil(4).String()
+			valStr := decimal.NewFromFloat(currentItem.Value).Round(4).String()
 			if latestDateStr == newDate.Format(utils.FormatDate) {
 				latestValue = currentItem.Value
 			}

+ 17 - 17
models/predict_edb_info_rule.go

@@ -148,7 +148,7 @@ func PredictTbzDiv(a, b float64) (result float64) {
 	val := bf.Add(cf)
 
 	// 计算
-	result, _ = val.Mul(af).RoundCeil(4).Float64()
+	result, _ = val.Mul(af).Round(4).Float64()
 	return
 }
 
@@ -267,7 +267,7 @@ func PredictTczDiv(a, b float64) (result float64) {
 		bf := decimal.NewFromFloat(b)
 
 		// 计算
-		result, _ = af.Add(bf).RoundCeil(4).Float64()
+		result, _ = af.Add(bf).Round(4).Float64()
 	} else {
 		result = 0
 	}
@@ -330,7 +330,7 @@ func PredictHbzDiv(a, b float64) (result float64) {
 		val := bf.Add(cf)
 
 		// 计算
-		result, _ = val.Mul(af).RoundCeil(4).Float64()
+		result, _ = val.Mul(af).Round(4).Float64()
 	} else {
 		result = 0
 	}
@@ -387,7 +387,7 @@ func PredictHczDiv(a, b float64) (result float64) {
 		bf := decimal.NewFromFloat(b)
 
 		// 计算
-		result, _ = af.Add(bf).RoundCeil(4).Float64()
+		result, _ = af.Add(bf).Round(4).Float64()
 	} else {
 		result = 0
 	}
@@ -426,7 +426,7 @@ func GetChartPredictEdbInfoDataListByRuleNMoveMeanValue(edbInfoId int, nValue in
 		}
 
 		// N期移动均值计算
-		val, _ := tmpDecimalVal.Div(decimalN).RoundCeil(4).Float64()
+		val, _ := tmpDecimalVal.Div(decimalN).Round(4).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -499,7 +499,7 @@ func GetChartPredictEdbInfoDataListByRuleNLinearRegression(edbInfoId int, nValue
 		tmpK := nValue + k + 1
 
 		xDecimal := decimal.NewFromInt(int64(tmpK))
-		val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).RoundCeil(4).Float64()
+		val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -560,7 +560,7 @@ func GetChartPredictEdbInfoDataListByRuleTrendsHC(edbInfoId int, dayList []time.
 		lastValueDecimal := decimal.NewFromFloat(lastValue)
 		hcValDecimal := decimal.NewFromFloat(hcVal)
 
-		val, _ := lastValueDecimal.Add(hcValDecimal).RoundCeil(4).Float64()
+		val, _ := lastValueDecimal.Add(hcValDecimal).Round(4).Float64()
 
 		tmpData := &EdbInfoSearchData{
 			EdbDataId: edbInfoId + 10000000000 + lenAllData + k,
@@ -810,7 +810,7 @@ func GetChartPredictEdbInfoDataListByRuleSeason(edbInfoId int, yearsList []int,
 			continue
 		}
 		lastDayValDec := decimal.NewFromFloat(lastDayVal)
-		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Add(lastDayValDec).RoundCeil(4).Float64()
+		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Add(lastDayValDec).Round(4).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -974,7 +974,7 @@ func GetChartPredictEdbInfoDataListByRuleMoveAverageTb(edbInfoId int, nValue, ye
 		tbVal := tmpAverageVal.Div(tmpHistoryAverageVal)
 
 		// 预测值结果 = 同比年份同期值(tmpHistoryCurrentVal的值)* 同比值(tbVal的值)
-		val, _ := decimal.NewFromFloat(tmpHistoryCurrentVal).Mul(tbVal).RoundCeil(4).Float64()
+		val, _ := decimal.NewFromFloat(tmpHistoryCurrentVal).Mul(tbVal).Round(4).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{
@@ -1111,7 +1111,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 		preDate := currentDate.AddDate(-1, 0, 0)
 		preDateStr := preDate.Format(utils.FormatDate)
 		if preValue, ok := existMap[preDateStr]; ok { //上一年同期找到
-			val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+			val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 			calculateStatus = true
 		} else {
 			switch frequency {
@@ -1122,13 +1122,13 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 				for i := 0; i <= 35; i++ {
 					nextDateDayStr := nextDateDay.Format(utils.FormatDate)
 					if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 						calculateStatus = true
 						break
 					} else {
 						preDateDayStr := preDateDay.Format(utils.FormatDate)
 						if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 							calculateStatus = true
 							break
 						}
@@ -1139,7 +1139,7 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 
 			case "季度", "年度":
 				if preValue, ok := existMap[preDateStr]; ok { //上一年同期->下一个月找到
-					val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+					val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 					calculateStatus = true
 					break
 				}
@@ -1150,13 +1150,13 @@ func GetChartPredictEdbInfoDataListByRuleTbzscz(edbInfoId int, tbEndValue float6
 				for i := 0; i < 35; i++ {
 					nextDateDayStr := nextDateDay.Format(utils.FormatDate)
 					if preValue, ok := existMap[nextDateDayStr]; ok { //上一年同期->下一个月找到
-						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+						val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 						calculateStatus = true
 						break
 					} else {
 						preDateDayStr := preDateDay.Format(utils.FormatDate)
 						if preValue, ok := existMap[preDateDayStr]; ok { //上一年同期->上一个月找到
-							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).RoundCeil(4).Float64()
+							val, _ = decimal.NewFromFloat(preValue).Mul(tbValue).Round(4).Float64()
 							calculateStatus = true
 							break
 						} else {
@@ -1364,7 +1364,7 @@ func getCalculateNhccData(secondDataList []*EdbInfoSearchData, ruleConf RuleLine
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
 			xDecimal := decimal.NewFromFloat(aData.Value)
-			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).RoundCeil(4).Float64()
+			val, _ := aDecimal.Mul(xDecimal).Add(bDecimal).Round(4).Float64()
 			newBDataMap[aData.DataTime] = val
 		}
 
@@ -1419,7 +1419,7 @@ func GetChartPredictEdbInfoDataListByRuleNAnnualAverage(edbInfoId int, configVal
 		if tmpHistoryValNum != len(yearList) {
 			continue
 		}
-		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).RoundCeil(4).Float64()
+		val, _ := tmpHistoryVal.Div(decimal.NewFromInt(int64(tmpHistoryValNum))).Round(4).Float64()
 
 		currentDateStr := currentDate.Format(utils.FormatDate)
 		tmpData := &EdbInfoSearchData{

+ 1 - 1
services/base_from_predict.go

@@ -246,7 +246,7 @@ func CalculateByRuleByNine(formulaStr string, edbInfoList []*models.EdbInfo, edb
 		//	return
 		//}
 
-		saveValue, _ := decimal.NewFromFloat(calVal).RoundCeil(4).Float64() //utils.SubFloatToString(calVal, 4)
+		saveValue, _ := decimal.NewFromFloat(calVal).Round(4).Float64() //utils.SubFloatToString(calVal, 4)
 		dataTime, _ := time.Parse(utils.FormatDate, date)
 		timestamp := dataTime.UnixNano() / 1e6