我正在处理需要big.Float
类型的数字,我需要将它们分开。我知道big.Int
有一个.Div()
函数,但是如果我是正确的话,会截断该值并失去使用big.Float
时获得的精度。
func e(prec int64) (res *big.Float) {
res = big.NewFloat(float64(1.0))
base := big.NewInt(prec)
for i := base; i.Cmp(big.NewInt(int64(0))) == 1; _ = i.Sub(i, big.NewInt(1)) {
d := big.NewFloat(float64(1.0))
_ = d.Div(fact(i)) // error here
res.Add(d)
}
return
}
答案 0 :(得分:17)
使用Float.Quo进行big.Float
分割:
x, y := big.NewFloat(10), big.NewFloat(3)
z := new(big.Float).Quo(x, y)