1. func Decimal(value float64) float64 {
    2. return math.Trunc(value*1e2+0.5) * 1e-2
    3. }

    加上 0.5是为了四舍五入,想保留几位小数的话把2改掉即可。
    这个版本有个关于浮点型数精度的问题,经常会出现 13.0000000001类似的结果。
    下面的是先通过Sprintf保留两位小数,再转成float64.

    1. func Decimal(value float64) float64 {
    2. value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", value), 64)
    3. return value
    4. }