golang中的字符串到数字转换

Ser*_*i G 4 go

Golang 有strconv库,可以将字符串转换为 int64 和 uint64。

但是,其余的整数数据类型似乎不受支持,因为我找不到 byte、int16、uint16、int32、uint32 数据类型的转换函数。

人们总是可以在不损失精度的情况下从字节、16 位和 32 位数据类型转换为 int64 和 uint64。这是语言的本意吗?

eva*_*nal 5

如果您更仔细地查看文档,则可以使用此方法;

func ParseInt(s string, base int, bitSize int)
Run Code Online (Sandbox Code Playgroud)

https://golang.org/pkg/strconv/#ParseInt

bitSize参数说明 int 有多大,以便您可以执行81632针对那些较小的整数类型。Atoi在内部调用它。我相信你想要10base参数。所以就像b, err := strconv.ParseInt("5", 10, 8)一个字节。

编辑:只是要在这里的答案中添加一些内容,以防 OP 实际上对如何将 16 位 int 转换为字符串感到困惑...如果这是您的预期目标,只需使用,fmt.Sprintf或者您可以从较小的 int 到较大的 int ,因为它总是会成功。两者的例子在这里; https://play.golang.org/p/UWSVxEmQ1N

package main

import "fmt"
import "strconv"

func main() {
    var a int16
    a = 5
    s := fmt.Sprintf("%d", a)
    s2 := strconv.Itoa(int(a))
    fmt.Println(s)
    fmt.Println(s2)
}
Run Code Online (Sandbox Code Playgroud)

  • `ParseInt` 将 *from* 字符串转换为整数。问题是询问另一个方向 - 将 * 转换为 * 字符串。 (7认同)
  • 怎么不行 问题的标题是“数字到字符串的转换”,然后是“strconv 将 int64 和 uint64 转换为字符串”。 (4认同)

Jis*_*hap 5

您可以使用 fmt.Sprintf() 方法将任何 int 类型转换为字符串

var num int64
numstring:=fmt.Sprintf("%d",num)
Run Code Online (Sandbox Code Playgroud)