去 - 划分big.Float

时间:2016-04-22 15:28:44

标签: math go

我正在处理需要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
}

1 个答案:

答案 0 :(得分:17)

使用Float.Quo进行big.Float分割:

x, y := big.NewFloat(10), big.NewFloat(3)
z := new(big.Float).Quo(x, y)

http://play.golang.org/p/GRPAKQNkq0