为了账号安全,请及时绑定邮箱和手机立即绑定

golang中的字符串到数字转换

golang中的字符串到数字转换

Go
12345678_0001 2021-11-15 16:37:21
Golang 有strconv库,可以将字符串转换为 int64 和 uint64。但是,其余的整数数据类型似乎不受支持,因为我找不到 byte、int16、uint16、int32、uint32 数据类型的转换函数。人们总是可以在不损失精度的情况下从字节、16 位和 32 位数据类型转换为 int64 和 uint64。这是语言的本意吗?

3 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

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


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

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


该bitSize参数说明 int 有多大,以便您可以执行8或16或32针对那些较小的整数类型。Atoi在内部调用它。我相信你想要10的base参数。所以就像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)

}


查看完整回答
反对 回复 2021-11-15
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

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

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


查看完整回答
反对 回复 2021-11-15
?
ITMISS

TA贡献1871条经验 获得超8个赞

例如,


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"


查看完整回答
反对 回复 2021-11-15

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号