登录
首页 >  Golang >  Go问答

如何用golang获得小数点以下两位长度?

来源:stackoverflow

时间:2024-05-02 08:54:31 477浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《如何用golang获得小数点以下两位长度?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

从下面的源代码中,我想获得浮点类型结果33.33。 如果使用 fmt.sprintf("%.2f", v) 可以很好地工作。但想在floattest函数中得到结果。怎么办?

func main() {
        v := floatTest(30, 90)
        fmt.Println(v)
        // 33.33333333333333
        vv := fmt.Sprintf("%.2f", v)
        fmt.Println(vv)
        // 33.33
}

func floatTest(count float64, total float64) float64 {
        return (count / total * 100)
}

解决方案


乘以 100;通过 int 转换截断;转换回 float32 并除以 100:

func precision2(f float64) float64 {
    return float64(int(f*100)) / 100
}

https://play.golang.org/p/jbsdeQKgJji

link 有使用 math 包的示例 - 但我通常会尽量避免包含用于琐碎操作的包。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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