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
}

 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐