针对原版,改进版有两个地方变动

%s%v
package main

import (
    "fmt"
    "strconv"
    "math"
)

// prec 代表小数位数
func TrunFloat(f float64, prec int) float64 {
    x := math.Pow10(prec)
    return math.Trunc(f*x) / x
}

func main() {


    f := 2.0/3;

    // 截断 8 位小数
    f2 := TrunFloat(f, 16)

    // 输出结果 0.6666666666666666
    fmt.Printf("%v\n", f2)

    // -1 参数表示保持原小数位数,千万要注意,如果你指定了位数就会四舍五入了
    d2 := strconv.FormatFloat(f2,'f',-1,64)

    // 输出结果 0.6666666666666666
    fmt.Printf("%s\n", d2)
}