任何一种语言在做浮点数计算后,都存在计算结果的精度问题,例如用golang从mysql数据库查出来的两个decimal数值相加减后,期结果肯定也是两位小数,但golang计算出来的结果就会有很多位,例如:

1725577.59 - 1381341.21  = 344236.3800000001

结果会出现10位小数,这个结果肯定不是我们想要的,我们只要结果的后两位,并且后两位的结果也是准确的

344236.38

这是就如何做到golang float64 计算后保留2位小数


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

如有问题请留言反馈,若对您有帮助,请帮点个赞,谢谢!