Browse Source

百分千分转换

zhangjinkun 5 years ago
parent
commit
abdee06680
1 changed files with 14 additions and 5 deletions
  1. 14 5
      src/jy/clear/tonumber.go

+ 14 - 5
src/jy/clear/tonumber.go

@@ -81,8 +81,8 @@ func ObjToFloat(data []interface{}) []interface{} {
 //金额转换
 func ObjToMoney(data []interface{}) []interface{} {
 	isfindUnit := true
-	tmpstr :=(data)[0]
-	if utf8.RuneCountInString(util.ObjToString(tmpstr)) > 30 {
+	tmpstr := (data)[0]
+	if utf8.RuneCountInString(util.ObjToString(tmpstr)) > 20 {
 		(data)[0] = 0
 		data = append(data, false)
 		return data
@@ -114,12 +114,21 @@ func ObjToMoney(data []interface{}) []interface{} {
 	data = append(data, true)
 	return data
 }
+
 //["中标金额","成交金额","合同金额","中标价","成交价","成交价格","中标(成交)金额","投标报价","中标标价","成交结果"]
 //["0元","零元","0.0万元","¥0元"]
 var moneyUnitRegBool = regexp.MustCompile(`(中标金额|成交金额|合同金额|中标价|成交价|成交价格|中标\(成交\)金额|投标报价|中标标价|成交结果)?[::\s]?(0|零|0.0|¥0)+(0|\.)*[\s]?(万|元|){0,2}[\s]?((人民币))?$`)
+
 //数字金额转换
 func numMoney(data []interface{}) ([]interface{}, bool) {
-	tmp := fmt.Sprintf("%f",data[0])
+	tmp := fmt.Sprint(data[0])
+	//费率转换% ‰
+	flv := float64(1)
+	if strings.HasSuffix(tmp, "%") {
+		flv = 0.01
+	} else if strings.HasSuffix(tmp, "‰") {
+		flv = 0.001
+	}
 	repUnit := float64(1)
 	if regQianw.MatchString(tmp) {
 		tmp = strings.Replace(tmp, "千万", "万", -1)
@@ -197,9 +206,9 @@ func numMoney(data []interface{}) ([]interface{}, bool) {
 	}
 	fnum = fnum * repUnit
 	if unit == float64(0) {
-		data[0] = fnum
+		data[0] = fnum * flv
 	} else {
-		data[0] = fnum * unit
+		data[0] = fnum * unit * flv
 	}
 	if unit == 10000 {
 		return data, false