dongyi0114 2019-07-17 02:24
浏览 1438
已采纳

Golang如何获得小数点后两位的长度?

From the source below, I want to get float type result 33.33. If use fmt.Sprintf("%.2f", v) can work well. But want to get the result in the floatTest function. How to do?

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)
}
  • 写回答

1条回答 默认 最新

  • dongxianji0968 2019-07-17 03:38
    关注

    Multiply by 100; truncate via int conversion; convert back to float32 and divide by 100:

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

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

    This link has examples using the math package - but I generally try to avoid including packages for trivial operations.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)