From 89c72c2e4865dbb1825345b619da12044180bf82 Mon Sep 17 00:00:00 2001 From: panlei <2799247126@qq.com> Date: 星期五, 02 八月 2019 16:38:49 +0800 Subject: [PATCH] 数值精度保留 --- ruleserver/readyDataForRule.go | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ruleserver/readyDataForRule.go b/ruleserver/readyDataForRule.go index c8a1d68..9c7863e 100644 --- a/ruleserver/readyDataForRule.go +++ b/ruleserver/readyDataForRule.go @@ -8,6 +8,7 @@ "fmt" "github.com/go-yaml/yaml" "io/ioutil" + "math" "ruleprocess/cache" "ruleprocess/logger" "strconv" @@ -84,17 +85,16 @@ // 淇濈暀鍥涗綅灏忔暟 func Retain(f float32) (float64) { - s := strconv.FormatFloat(float64(f), 'f', 4, 64) - v, err := strconv.ParseFloat(s, 64) - if err != nil { - logger.Error("淇濈暀鍥涗綅灏忔暟杞崲閿欒") - } - // float32涓巉loat64浜掕浆浼氭湁浣嶆暟淇濈暀涓嶅噯鐨勯棶棰� - return v + value1, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", float64(f)), 64) + return value1 } -func Decimal(value float64) float64 { - value, _ = strconv.ParseFloat(fmt.Sprintf("%.4f", value), 64) - return value +func Decimal(value float32) float64 { + value1, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", float64(value)), 64) + logger.Info("鍒濇淇濈暀涓や綅鎴恠tr:",value1) + n10 := math.Pow10(4) + value2 := math.Trunc((value1+0.5/n10)*n10) / n10 + logger.Info("鍒濇淇濈暀涓や綅鎴恠tr::::",value2) + return value2 } // 鍙栧嚭鏌愪釜鏃堕棿瑙勫垯鐨勭鍑犲ぉ鐨勮鍒欐闆嗗悎 func GetTimeById(id string, index int) []TimeRange { @@ -181,8 +181,8 @@ if err != nil || len(table) == 0 { logger.Error("鏍规嵁id鏌ヨ搴曞簱淇℃伅鍑洪敊锛�", err, "--杩斿洖鍊奸暱搴︿负锛�", len(table)) } - logger.Debug("鐪嬬湅杩欎釜base鐨勫姣斿�兼槸澶氬皯锛�",Retain(m[baseinfo.Id]) * 100) - base := BaseInfo{TableId: baseinfo.TableId, TableName: table[0].TableName, BwType: table[0].BwType, CompareScore: Decimal(float64(m[baseinfo.Id])) * 100, PersonId: baseinfo.Id, PersonName: baseinfo.PersonName, PersonPicUrl: baseinfo.PersonPicUrl, PhoneNum: baseinfo.PhoneNum, Sex: baseinfo.Sex, IdCard: baseinfo.IdCard, MonitorLevel: baseinfo.MonitorLevel, Content: baseinfo.Reserved} + logger.Debug("鐪嬬湅杩欎釜base鐨勫姣斿�兼槸澶氬皯锛�", Decimal(m[baseinfo.Id] * 100)) + base := BaseInfo{TableId: baseinfo.TableId, TableName: table[0].TableName, BwType: table[0].BwType, CompareScore: Decimal(m[baseinfo.Id] * 100), PersonId: baseinfo.Id, PersonName: baseinfo.PersonName, PersonPicUrl: baseinfo.PersonPicUrl, PhoneNum: baseinfo.PhoneNum, Sex: baseinfo.Sex, IdCard: baseinfo.IdCard, MonitorLevel: baseinfo.MonitorLevel, Content: baseinfo.Reserved} //os.Exit(1) arg.Liker = append(arg.Liker, &base) } -- Gitblit v1.8.0