浮点型比其他语言要差

  • 运算时,计算结果不准

  • 四舍五入时,用的是银行舍入法,和其他语言四舍五入的值对不上。解决方法如下:

    1
    2
    3
    4
    5
    6
    //四舍五入 取精度
    func ToFixed(f float64,places int) float64{
    shift := math.Pow(10, float64(places))
    fv := 0.0000000001 + f //对浮点数产生.xxx999999999 计算不准进行处理
    return math.Floor(fv * shift + .5) / shift
    }
Go