Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > golang float64 保留2位小数

通过函数如何将golang float64 保留2位小数(方法汇总)

作者:北漂燕郊杨哥

这篇文章主要介绍了通过函数将golang float64保留2位小数,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

通过函数将golang float64 保留2位小数

任何一种语言在做浮点数计算后,都存在计算结果的精度问题,例如用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
}

golang之float类型保留小数点后2位

value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 0.2223), 64)
   fmt.print(value)

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
}

到此这篇关于通过函数将golang float64 保留2位小数的文章就介绍到这了,更多相关golang float64 保留2位小数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文