Go语言中 int64 整型与字符串的正确转换方法

Nora
Nora
发布时间:2026-10-15 | 6人浏览过
原创

本文解决 Go 语言中将 int64 数值转换为字符串时的常见误区。重点介绍如何使用标准库 strconv 中的 FormatInt、ParseInt 等函数实现精确的数字与文本互转,并提供完整的代码示例。

避免内置 string() 函数的陷阱

在 Go 语言中,初学者常误以为可以使用内置的 string() 函数直接将整型数值转换为表示该数值的字符串(例如将 123 转为 "123")。实际上,当参数为整数类型时,string() 会将其视为 UTF-8 编码的 Unicode 码点,并返回对应的字符。

例如,int64(123) 对应的 ASCII/Unicode 字符是左花括号 {,而非字符串 "123"。这种隐式行为往往导致程序出现难以察觉的逻辑错误。

package main

import (
	"fmt"
)

func main() {
	i := int64(123)
	// 错误示范:得到的是字符 '{' 而非 "123"
	s := string(i)
	fmt.Println(s)
}

使用 strconv 标准库进行转换

Go 语言官方提供的 strconv 包专门用于基本数据类型与其字符串表示之间的相互转换。这是执行此类操作的标准且推荐的方式。

第1步:将 int64 转换为字符串

使用 strconv.FormatInt(i int64, base int) string 函数。

  • 参数说明:i 为目标 int64 数值,base 为进制(通常使用 10 表示十进制)。
  • 返回值:包含数值十进制表示的字符串。
package main

import (
	"fmt"
	"strconv"
)

func main() {
	i := int64(123)
	// 正确做法:转换为十进制字符串 "123"
	s1 := strconv.FormatInt(i, 10)
	fmt.Println(s1) // 输出: 123
}

第2步:将字符串解析回 int64

如果需要逆向操作,即从字符串获取整数,应使用 strconv.ParseInt(s string, base int, bitSize int) (i int64, err error)。

  • 参数说明:s 为待解析字符串,base 为进制,bitSize 指定结果赋值给 int32 (32) 或 int64 (64)。
// 字符串 "64" 转回 int64
s64 := "64"
i64, _ := strconv.ParseInt(s64, 10, 64)
fmt.Println(i64)          // 输出: 64
fmt.Printf("%T\r\n", i64) // 输出: int64

其他常见类型的转换辅助

除了直接的 int64 转换,实际开发中还经常涉及 int 与 string 的转换,以及浮点数相关的处理。以下是基于 strconv 的常用模式:

int 与 string 互转

strconv.Atoi 用于字符串转 int,strconv.Itoa 用于 int 转字符串(底层调用 FormatInt/i64)。

// int 转 string (底层实际上是调用 strconv.FormatInt(int64, 10))
s := strconv.Itoa(1)     
fmt.Println(s)           // "1"

// string 转 int
val, _ := strconv.Atoi("1")
fmt.Println(val)         // 1

浮点数 (float) 转换注意事项

处理浮点数时,需注意精度控制。字符串转 float 统一返回 float64(除非显式转换),转换格式可通过 'E', 'f' 等参数控制。

// 字符串 "1.23" 转 float64
sfloat := "1.23"
f32, _ := strconv.ParseFloat(sfloat, 64)
fmt.Println(f32)         // 1.23

// float64 转格式化字符串
f64 := float64(100.23456)
// 'e': 科学计数法; -1: 保留所有有效数字; 64: float64
sf64 := strconv.FormatFloat(f64, 'E', -1, 64)
fmt.Println(sf64)        // 1.0023456E+02

总结

在 Go 语言中进行类型转换时,请务必优先查阅并使用 strconv 包。直接使用 string(i) 仅适用于将整数转为对应 Unicode 字符的场景,切勿用于常规的数学数值文本化。掌握 FormatInt 和 ParseInt 的组合使用,能确保数据转换的准确性与鲁棒性。

以上就是Go语言 int64 整型与字符串转换的详细内容,更多关于 Go语言 int64 整型转字符串的资料请关注本站其它相关文章!
相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表