Golang Float高精度计算,无误差

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高精度计算,无误差)