当前位置: 首页 > 知识库问答 >
问题:

golang中字符串到数字的转换

拓拔曦
2023-03-14

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

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

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

共有3个答案

魏鸿哲
2023-03-14

例如

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"
谭裕
2023-03-14

可以使用fmt将任何int类型转换为string。Sprintf()方法

var num int64
numstring:=fmt.Sprintf("%d",num)
冯通
2023-03-14

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

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

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

参数bitSize表示int的大小,因此可以对较小的整数类型执行8、16或32<代码>Atoi在内部调用此函数。我相信你想要10个基本参数。所以像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)
}
 类似资料:
  • 我想转换一个组织。阿帕奇。火花sql。数据框到组织。阿帕奇。火花rdd。RDD[(字符串,字符串)]在数据块中。有人能帮忙吗? 背景(也欢迎使用更好的解决方案):我有一个Kafka流,它(经过一些步骤)变成了2列数据帧。我想将其放入Redis缓存,第一列作为键,第二列作为值。 更具体地说,输入的类型是:。我尝试将以下内容放入Redis: 错误消息如下所示: 我已经尝试过一些想法(比如函数、rdd)

  • 我正在制作一个Android应用程序,它可以与蓝牙设备进行通信。我正在为选定的特征写一条特定的信息,如下所示: 我的转换函数如下所示: 我试图弄清楚为什么在这种情况下,我的转换输出是这样的: D/上传数据集:消息:�������������������� 这很奇怪,因为当我使用相同的转换函数来转换作为蓝牙通知接收到的值时,它工作得非常好。欢迎提出问题所在的任何建议

  • 我想将字符串转换为int64。我从<code>strconv ParseInt实际上返回一个int64: 所以如果我想从一个字符串中获取一个int64,我应该避免使用Atoi,而是使用ParseInt吗?还是有Atio64藏在某个地方?

  • 我遇到了这样一个java字符串,其中以下内容是错误的: 我想这是因为字符串构造函数默认将主体字节[]的编码视为UTF-8,我不是100%确定。我如何能够将此字符串存储在字节[]中,并能够稍后将其转换回来?我想我需要能够确定字节[]的编码方式。我该怎么做呢? 一些上下文:我需要字节[],以便压缩数据,将其存储在数据库中,然后解压缩并将未压缩的字节[]转换回原始字符串。这个字符串最初来自某个下载了网页

  • 在Java中,我看到了将转换为的四种选择。 我认为第一个是最慢的。第二个很方便。我推测第三个可能会返回一个先前创建的< code>String实例,但我不确定,API文档也没有这么说。这同样适用于选项四。这种实例的重用是非常幸运的,因为基于散列的查找可以利用< code>String中的< code>hashCode()缓存。(哪个特性也没有在API文档中描述,但是很多人告诉我。) 我来自C语言,

  • 问题内容: 我需要在Golang中将转换为。是否有可能转换到在Golang无须转换为或第一? 需要一个。需要一个。 问题答案: 一线的答案是。 无论如何,甚至在标准库函数(例如)内部都有很多转换,因此您有一些选择(尝试使用Go Playground ): 1-您可以编写转换函数( 最快 ): 2-您可以使用 ( 慢 ) 参见内部: 3-您可以使用 ( 快速 ) 参见内部: 4-您可以使用( 更快