golang big.Float与big.Int处理精度问题

这篇博客探讨了使用`big.Int`和`big.Float`在Go语言中进行数值运算的问题。通过两个示例函数,展示了将atto(10的负20次方)转换为基本单位的两种方法,一种返回`big.Int`结果为0,另一种返回`big.Float`结果为0.1,揭示了整数除法和浮点数除法的区别。
摘要由CSDN通过智能技术生成

big.Int(error)

入参数10
func Atto2BaseCoin(atto *big.Int) *big.Int {
i := big.NewInt(0)
i.Add(i, atto)
i.Div(i, big.NewInt(100))
return i
}

错误输出i=0;

入参数10
func Atto2BaseCoin(atto *big.Int) *big.Float {
f := new(big.Float).SetInt(atto)
fSub := new(big.Float).SetUint64(100)

f.Quo(f, fSub)
return f

}

正确输出f=0.1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值