golang中的字符串到数字转换

时间:2015-10-14 16:37:23

标签: go

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

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

总是可以将字节,16位和32位数据类型转换为int64和uint64,而不会损失精度。这是语言的意图吗?

3 个答案:

答案 0 :(得分:3)

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

var num int64
numstring:=fmt.Sprintf("%d",num)

答案 1 :(得分:2)

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

func ParseInt(s string, base int, bitSize int)

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

bitSize参数表示int的大小,因此您可以为这些较小的整数类型执行81632Atoi在内部调用此内容。我相信您需要10 base参数。就像b, err := strconv.ParseInt("5", 10, 8)一样。

编辑:如果OP实际上混淆了如何将16位int转换为字符串,那么只需要在这里添加一些答案......如果这是您的预期目标,只需使用{{1}或者你可以从较小的int转换为较大的int,因为它总是会成功。这两个例子; https://play.golang.org/p/UWSVxEmQ1N

fmt.Sprintf

答案 2 :(得分:2)

例如,

package main

import (
    "fmt"
    "strconv"
)

func main() {
    n := int16(42)
    s := strconv.FormatInt(int64(n), 10)
    fmt.Printf("n %d s %q\n", n, s)
}

输出:

n 42 s "42"