加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在没有科学记数法的情况下在Golang中将float打印为字符串

发布时间:2020-12-16 19:03:38 所属栏目:大数据 来源:网络整理
导读:假设我有一个包含2个项目的数组,其类型为string / float. 如何在没有浮动项目的科学记号的情况下将它们打印在一起. 例如: package mainimport ( "fmt")func main() { values := []interface{}{"mydata",1234567890.123} for _,v := range values{ fmt.Print
假设我有一个包含2个项目的数组,其类型为string / float.
如何在没有浮动项目的科学记号的情况下将它们打印在一起.

例如:

package main

import (
    "fmt"
)

func main() {
    values := []interface{}{"mydata",1234567890.123}
    for _,v := range values{
        fmt.Printf("%vn",v)
    }
}

输出将是

mydata

1.234567890123e+09

我想要的是

mydata

1234567890.123

fmt的软件包文档解释了它:%v动词是默认格式,对于浮动数字意味着/恢复为%g,这是

%e for large exponents,%f otherwise. Precision is discussed below.

如果您总是想要“小数点但没有指数,例如123.456”,请明确使用%f.

但是您只能将其用于浮动数字,因此您必须检查打印值的类型.为此,您可以使用type switch或type assertion.

例:

switch v.(type) {
case float64,float32:
    fmt.Printf("%fn",v)
default:
    fmt.Printf("%vn",v)
}

输出(在Go Playground上试试):

mydata
1234567890.123000

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读