go语言中float64 保留2位小数

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

加上 0.5是为了四舍五入,想保留几位小数的话把2改掉即可。

这个版本有个关于浮点型数精度的问题,经常会出现 13.0000000001类似的结果。

下面的是先通过Sprintf保留两位小数,再转成float64.

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

 

你可能感兴趣的:(go)