通过函数如何将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位小数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Golang中println和fmt.Println区别解析
Golang 中打印数据通常使用 fmt.Println() 方法,也可以使用内置的 println() 方法。这两个方法大家可能都使用过,它们的区别是什么呢?本文给大家详细讲解,感兴趣的朋友跟随小编一起看看吧2023-03-03
golang NewRequest/gorequest实现http请求的示例代码
本文主要介绍了golang NewRequest/gorequest实现http请求的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-08-08


最新评论