最近區塊鍊中的數值超大 會自動轉換成字元串看着好别扭,go官方也沒有較好的庫
通過查找在git上找到了庫:
引用導入 go get github.com/shopspring/decimal
代碼:
import (
"fmt"
"github.com/labstack/gommon/log"
"github.com/shopspring/decimal"
"strconv"
)
func main() {
numStr := "1e+17"
decimalNum, err := decimal.NewFromString(numStr)
if err != nil {
log.Errorf("decimal.NewFromString error, numStr:%s, err:%v", numStr, err)
return
}
fmt.Println(decimalNum.String())
}
//out "1000000000000000"
de1,err:=decimal.NewFromString("1e+8")
de2,err:=decimal.NewFromString("1e+8")
if err==nil{
fmt.Println("和:"+de1.Add(de2).String())
}
//output : 和:200000000
elem.Value=1e+20
valueStr:= strconv.FormatFloat(elem.Value, 'E', -1, 64);
de2,err:=decimal.NewFromString(valueStr)
if err!=nil{
log.Error(err.Error())
continue
}
fmt.Println(de2.String())