主页 > imtoken官网苹果版 > 2021-03-18 Golang以太坊大额转账转换问题
2021-03-18 Golang以太坊大额转账转换问题
imtoken官网苹果版 2023-03-03 06:02:18
2021-03-18 golang 以太坊大转账转换问题 slash youth_728f · · 481 次点击 · · 开始浏览
这是一篇创建于 的文章,其中的信息可能已经过开发或更改。
站长第一次亲自招收Gopher >>>
在构造以太坊通用交易结构时,有一个value参数,类型为*Int,
一般情况下直接取值 := big.NewInt(1000000000000000000000) 1ETH
当你要转更多的时候,比如100eth以太坊转账备注,1000eth会报int64溢出错误
正确的做法是:为了方便入参,从上游接收一个string类型的值以太坊转账备注,
然后
valuef, err := strconv.ParseFloat(value,64) //先转换为float64
如果错误!=无{
log.Println("不是数字")
}
//然后通过sprintf格式化为*Int
valueWei, isOk := new(big.Int).SetString(fmt.Sprintf("%.0f", valuef*1000000000000000000), 10)
如果 !isOk {
log.Println("float to bigInt 失败!")
}
这时候就不会溢出了,还有一个将*Int转成string的方法
有问题加站长微信联系(非本文作者)
本文来自:简书