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

 更新时间:2023年08月02日 09:42:27   作者:北漂燕郊杨哥  
这篇文章主要介绍了通过函数将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位小数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • go语言阻塞函数和非阻塞函数实现

    go语言阻塞函数和非阻塞函数实现

    本文主要介绍了go语言阻塞函数和非阻塞函数实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Go tablewriter库提升命令行输出专业度实例详解

    Go tablewriter库提升命令行输出专业度实例详解

    命令行工具大家都用过,如果是运维人员可能会编写命令行工具来完成各种任务,命令行输出的美观和易读性往往容易被忽视,很烂的输出会让人感觉不专业,本文将介绍Go语言中牛逼的实战工具tablewriter库,使你在命令行输出中展现出专业的一面
    2023-11-11
  • Golang 性能基准测试(benchmark)详解

    Golang 性能基准测试(benchmark)详解

    Golang性能基准测试可以帮助开发人员比较不同的实现方式对性能的影响,以便优化程序,本文就来讲解一下如何使用Golang的性能基准测试功能,需要的朋友可以参考下
    2023-06-06
  • Go自定义数据序列化的流程详解

    Go自定义数据序列化的流程详解

    在Go语言中,自定义数据的序列化是一个常见的需求,本文将深入探讨 Go 语言中自定义数据序列化的流程,包括关键概念、技巧和最佳实践,旨在帮助开发者更高效地进行数据序列化工作,需要的朋友可以参考下
    2024-06-06
  • 详解Go语言设计模式之单例模式

    详解Go语言设计模式之单例模式

    单例模式很容易记住。就像名称一样,它只能提供对象的单一实例,保证一个类只有一个实例,并提供一个全局访问该实例的方法。本文就来聊聊Go语言中的单例模式,感兴趣的小伙伴可以了解一下
    2022-10-10
  • golang指数运算操作

    golang指数运算操作

    这篇文章主要介绍了golang指数运算操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 教你一招完美解决vscode安装go插件失败问题

    教你一招完美解决vscode安装go插件失败问题

    VSCode是我们开发go程序的常用工具,但是安装VSCode成功后,创建一个.go文件居然提示错误了,所以下面下面这篇文章主要给大家介绍了如何通过一招完美解决vscode安装go插件失败问题的相关资料,需要的朋友可以参考下
    2022-07-07
  • golang 两个go程轮流打印一个切片的实现

    golang 两个go程轮流打印一个切片的实现

    这篇文章主要介绍了golang 两个go程轮流打印一个切片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Gotify搭建你的消息推送系统

    Gotify搭建你的消息推送系统

    这篇文章主要介绍了Gotify搭建你的消息推送系统,今天要分享的是 gotify,是一个用 go 编写的消息服务端,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2024-01-01
  • golang 防缓存击穿singleflight的实现

    golang 防缓存击穿singleflight的实现

    本文主要介绍了golang 防缓存击穿singleflight的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08

最新评论