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, 类型: %Tn", 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 := 456str := strconv.Itoa(num)fmt.Println(str) // "456"
若需指定进制(如十六进制、二进制),使用 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("%.5fn", f)
浮点转字符串,可控制精度和格式:
f := 3.1415926str = strconv.FormatFloat(f, 'f', 3, 64) // "3.142"str = strconv.FormatFloat(f, 'e', 2, 64) // "3.14e+00"
第二个参数是格式:’f’ 表示小数形式,’e’ 科学计数法;第三个是精度。
布尔值转换
虽然不常用于数字,但布尔值也属于基础类型转换范畴。
// 字符串转 boolb, _ := strconv.ParseBool("true") // trueb, _ = strconv.ParseBool("1") // trueb, _ = strconv.ParseBool("false") // false// bool 转字符串str = strconv.FormatBool(true) // "true"
基本上就这些。实际使用时注意检查 error 返回值,特别是来自外部输入的数据。合理选择函数能让代码更清晰,性能也不错。不复杂但容易忽略细节。基本上就这些。
以上就是Golangstrconv数字与字符串转换实践的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1406637.html
微信扫一扫
支付宝扫一扫