float64
stringsstring
func Truncate(f float64, prec int) string {
    n := strconv.FormatFloat(f, 'f', -1, 64)
    if n == "" {
        return ""
    }
    if prec >= len(n) {
        return n
    }
    newn := strings.Split(n, ".")
    if len(newn) < 2 || prec >= len(newn[1]) {
        return n
    }
    return newn[0] + "." + newn[1][:prec]
}

使用方式

package main 

import (
    "strconv"
    "strings"
)

func Truncate(f float64, prec int) string {
    n := strconv.FormatFloat(f, 'f', -1, 64)
    if n == "" {
        return ""
    }
    if prec >= len(n) {
        return n
    }
    newn := strings.Split(n, ".")
    if len(newn) < 2 || prec >= len(newn[1]) {
        return n
    }
    return newn[0] + "." + newn[1][:prec]
}


func main() {
    f := 1.0 / 3.0
    println(Truncate(f,8))
}

不过还有另外一个版本,哈哈

package main 

import (
    "strconv"
    "strings"
)

func Truncate(f float64, prec int) string {
    n := strconv.FormatFloat(f, 'f', -1, 64)
    if n == "" {
        return ""
    }

    ll := len(n)
    if prec >= ll {
        return n
    }

    dotn := strings.Index(n, ".")
    if dotn <= -1 || prec + dotn >= ll  {
        return n 
    }
    return n[:dotn + prec + 1 ]
}


func main() {
    f := 33333330.1234567890
    println(Truncate(f,8))
}