美文网首页
Golang Float高精度计算,无误差

Golang Float高精度计算,无误差

作者: VANCY_2ddc | 来源:发表于2020-01-12 00:23 被阅读0次

    Golang Float乘Float高精度,转Int高精度。

    使用big.Float

    bigF1 := new(big.Float).SetFloat64(f1)

    bigF2 := new(big.Float).SetFloat64(f2)

    mul := new(big.Float).Mul(bigF1, bigF2)

    转Int,先用上面的方法转为big.Float,再用.String转为字符串。

    new(big.Int).SetString(bigFloat, 10) // 即可转为big.Int

    // big.Int可转为常用的int类型。

    // big.Float可转为常用的Float类型。

    // big.Float不能直接转为Int类型。

    func Sub(x float64, y float64, more ...float64) float64 {

      floatX := new(big.Float).SetFloat64(x)

      floatY := new(big.Float).SetFloat64(y)

      result := new(big.Float).Sub(floatX, floatY)

      if len(more) > 0 {

          for _, m := range more {

            floatM := new(big.Float).SetFloat64(m)

            result = new(big.Float).Sub(result, floatM)

    }

    }

      f, _ := strconv.ParseFloat(result.String(), 64)

      return f

    }

    相关文章

      网友评论

          本文标题:Golang Float高精度计算,无误差

          本文链接:https://www.haomeiwen.com/subject/woefxxtx.html