登录
首页 >  Golang >  Go问答

Golang 中所有小数点四舍五入

来源:stackoverflow

时间:2024-04-17 08:48:37 294浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《Golang 中所有小数点四舍五入》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我正在尝试以非常规方式舍入 float64 变量中的所有数字。例如:

3.4444445 --> 3.5

我想做到这一点而不将其转换为字符串!


解决方案


golang的数学库提供了round函数。但是,它将 float64 四舍五入为 int,这意味着小数点会丢失。

解决此问题的快速解决方法是将数字乘以要保存的小数位数,然后四舍五入,然后再次除以:

raw := 4.335
rounded := math.round(raw * 10) / 10

会给你想要的结果。

您可能想要创建一个小辅助函数来舍入保存任意数量的数字:

func roundto(n float64, decimals uint32) float64 {
  return math.round(n*math.pow(10, float64(decimals))) / math.pow(10, float64(decimals))
}

用法:

roundTo(4.2655, 1) // 4.3
roundTo(4.3454, 3) // 4.345

到这里,我们也就讲完了《Golang 中所有小数点四舍五入》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>