Go语言中通过strconv包实现数字与字符串互转。1. 字符串转整数用Atoi或ParseInt,支持十进制、二进制、十六进制;2. 整数转字符串用Itoa或FormatInt,可指定进制;3. 浮点数与字符串互转使用ParseFloat和FormatFloat,可控制精度和格式;4. 布尔值与字符串互转使用ParseBool和FormatBool。所有转换需检查error,确保安全性。

在Go语言开发中,经常需要在数字和字符串之间进行转换。Golang的 strconv 包提供了简单高效的方法来完成这些操作。掌握这些基本用法,能有效避免类型错误和运行时 panic。
字符串转整数(ParseInt / Atoi)
将字符串解析为整数是常见需求,比如处理用户输入或配置文件中的数值。
strconv.Atoi 是最常用的方法,适用于默认十进制、int 类型的场景:
numStr := "123"
num, err := strconv.Atoi(numStr)
if err != nil {
log.Fatal("转换失败:", err)
}
fmt.Printf("结果: %d, 类型: %T\n", num, num) // 123, int
如果需要更灵活控制进制或位宽,使用 strconv.ParseInt:
立即学习“go语言免费学习笔记(深入)”;
// 解析二进制
num, _ := strconv.ParseInt("1111", 2, 64) // 结果: 15
// 解析十六进制
num, _ = strconv.ParseInt("ff", 16, 32) // 结果: 255
// 第三个参数表示目标类型位宽:0=自动,但通常传 64
整数转字符串(Itoa / FormatInt)
将整数转为字符串通常用于日志输出、拼接路径或生成响应内容。
strconv.Itoa 是最简洁的方式:
num := 456 str := strconv.Itoa(num) fmt.Println(str) // "456" </font>
若需指定进制(如十六进制、二进制),使用 strconv.FormatInt:
str = strconv.FormatInt(255, 16) // 十六进制: "ff" str = strconv.FormatInt(10, 2) // 二进制: "1010"
浮点数与字符串互转
对于 float 类型,使用 ParseFloat 和 FormatFloat。
字符串转浮点:
fStr := "3.14159"
f, err := strconv.ParseFloat(fStr, 64)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%.5f\n", f)
浮点转字符串,可控制精度和格式:
f := 3.1415926 str = strconv.FormatFloat(f, 'f', 3, 64) // "3.142" str = strconv.FormatFloat(f, 'e', 2, 64) // "3.14e+00"
第二个参数是格式:'f' 表示小数形式,'e' 科学计数法;第三个是精度。
布尔值转换
虽然不常用于数字,但布尔值也属于基础类型转换范畴。
// 字符串转 bool
b, _ := strconv.ParseBool("true") // true
b, _ = strconv.ParseBool("1") // true
b, _ = strconv.ParseBool("false") // false
// bool 转字符串
str = strconv.FormatBool(true) // "true"
基本上就这些。实际使用时注意检查 error 返回值,特别是来自外部输入的数据。合理选择函数能让代码更清晰,性能也不错。不复杂但容易忽略细节。基本上就这些。










