通过函数如何将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语言的错误处理机制,包括通过返回error类型显式处理错误,以及使用panic和recover应对严重异常,感兴趣的可以了解一下
    2025-10-10
  • 一文带你掌握Go语言中的文件读取操作

    一文带你掌握Go语言中的文件读取操作

    这篇文章主要和大家分享一下Go语言中的文件读取操作,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,需要的小伙伴可以参考一下
    2022-12-12
  • golang时间/时间戳的获取与转换实例代码

    golang时间/时间戳的获取与转换实例代码

    说实话,golang的时间转化还是很麻烦的,最起码比php麻烦很多,下面这篇文章主要给大家介绍了关于golang时间/时间戳的获取与转换的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • Golang中println和fmt.Println区别解析

    Golang中println和fmt.Println区别解析

    Golang 中打印数据通常使用 fmt.Println() 方法,也可以使用内置的 println() 方法。这两个方法大家可能都使用过,它们的区别是什么呢?本文给大家详细讲解,感兴趣的朋友跟随小编一起看看吧
    2023-03-03
  • Go设计模式之模板方法模式讲解和代码示例

    Go设计模式之模板方法模式讲解和代码示例

    模版方法是一种行为设计模式, 它在基类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤,本文将通过代码示例给大家详细的介绍一下Go模板方法模式,需要的朋友可以参考下
    2023-08-08
  • 一文带你深入了解Golang中的自旋锁

    一文带你深入了解Golang中的自旋锁

    自旋锁是一种忙等待锁,当一个线程尝试获取一个已经被其它线程持有的锁时,这个线程会持续循环检查锁的状态(即“自旋”) ,直到锁被释放后获得所有权,下面我们就来深入了解下自旋锁的具体操作吧
    2024-01-01
  • Go中调用JS代码(otto)的实现示例

    Go中调用JS代码(otto)的实现示例

    Otto是一个用Go语言实现的JavaScript解释器,可用于执行和操作JavaScript代码,适合在Go项目中执行简单的JS脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • Golang实现文件夹的创建与删除的方法详解

    Golang实现文件夹的创建与删除的方法详解

    这篇文章主要介绍了如何利用Go语言实现对文件夹的常用操作:创建于删除。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-05-05
  • golang对自定义类型进行排序的解决方法

    golang对自定义类型进行排序的解决方法

    学习一门编程语言,要掌握原子数据类型,还需要掌握自定义数据类型。下面这篇文章主要给大家介绍了关于golang如何对自定义类型进行排序的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • golang NewRequest/gorequest实现http请求的示例代码

    golang NewRequest/gorequest实现http请求的示例代码

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

最新评论