本文主要是介绍go 科学计数法 大数值转string 串 求和等等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近区块链中的数值超大 会自动转换成字符串看着好别扭,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
float 64 科学计数法转 string
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())
out: 100000000000000000000
这篇关于go 科学计数法 大数值转string 串 求和等等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!