Golang数字&字母字符串转Float64
有需求的地方就有解决方案
最近有这么一个需求,就是将字母数字复合的字符串转纯数字float64。比如:34545.34583RMB
show code
import (
"fmt"
"log"
"strconv"
)
func main() {
str1 := "22659.12434534566"
str2 := "283.56 RMB"
str3 := "1a2b3c4d5f.6g7h8iij19203"
fmt.Println(spiltStr(str1))
fmt.Println(spiltStr(str2))
fmt.Println(spiltStr(str3))
}
func spiltStr(s string) float64 {
// "0123456789."
// [48 49 50 51 52 53 54 55 56 57 46]
var bytes []byte
bts := []byte(s)
for _, v := range bts {
if v >= 46 && v <= 57 {
bytes = append(bytes, v)
}
}
flo64, err := strconv.ParseFloat(string(bytes[:]), 64)
if err != nil {
log.Fatal(err)
}
return flo64
}
//输入示例
str1 := "22659.12434534566"
str2 := "283.56 RMB"
str3 := "1a2b3c4d5f.6g7h8iij19203"
//输出:
CoiMac-Pro:splitStr co$ go run splitStr.go
22659.12434534566
283.56
12345.67819203