当前位置:首页 > Go > 正文

Go语言数值格式化全解析(strconv包实战教程)

Go语言 开发中,经常需要将数字转换为字符串,或将字符串解析为数字。这时,strconv 包就派上大用场了!本教程将带你从零开始,深入浅出地掌握 strconv 包 中用于数值格式化的核心功能,即使是编程小白也能轻松上手。

Go语言数值格式化全解析(strconv包实战教程) Go语言 strconv 数值格式化 教程 第1张

什么是 strconv 包?

strconv 是 Go 标准库中的一个包,全称是 “string convert”,专门用于字符串与其他基本数据类型(如整数、浮点数、布尔值)之间的相互转换。它提供了安全、高效且灵活的转换方法。

常用数值格式化函数

下面我们重点介绍几个最常用的 数值格式化 函数:

1. Itoa:整数转字符串

Itoa 是 “Integer to ASCII” 的缩写,用于将 int 类型转换为十进制字符串。

package mainimport (    "fmt"    "strconv")func main() {    num := 42    str := strconv.Itoa(num)    fmt.Println("整数转字符串:", str) // 输出: 整数转字符串: 42}

2. Atoi:字符串转整数

Atoi 是 “ASCII to Integer” 的缩写,将字符串解析为 int。注意:它只支持十进制,且会返回错误(error)。

str := "123"num, err := strconv.Atoi(str)if err != nil {    fmt.Println("转换失败:", err)} else {    fmt.Println("字符串转整数:", num) // 输出: 字符串转整数: 123}

3. FormatInt / ParseInt:更灵活的整数转换

FormatInt 可以指定进制(2、8、10、16等),ParseInt 则能解析任意进制的字符串。

// FormatInt 示例num := int64(255)hexStr := strconv.FormatInt(num, 16) // 转为十六进制binStr := strconv.FormatInt(num, 2)  // 转为二进制fmt.Println("十六进制:", hexStr) // fffmt.Println("二进制:", binStr)   // 11111111// ParseInt 示例hexNum, _ := strconv.ParseInt("ff", 16, 64)fmt.Println("十六进制字符串转整数:", hexNum) // 255

4. FormatFloat / ParseFloat:浮点数转换

处理小数时,使用 FormatFloatParseFloat。其中 FormatFloat 支持多种格式('f', 'e', 'g' 等)和精度控制。

pi := 3.1415926535// 保留2位小数str1 := strconv.FormatFloat(pi, 'f', 2, 64)fmt.Println("保留2位小数:", str1) // 3.14// 科学计数法str2 := strconv.FormatFloat(pi, 'e', -1, 64)fmt.Println("科学计数法:", str2) // 3.1415926535e+00// 字符串转浮点数f, _ := strconv.ParseFloat("3.14", 64)fmt.Println("字符串转浮点数:", f) // 3.14

错误处理很重要!

在使用 AtoiParseIntParseFloat 等函数时,务必检查返回的 error。如果传入非法字符串(如字母、空字符串),程序会报错。

// 错误示例num, err := strconv.Atoi("hello")if err != nil {    fmt.Println("转换失败!原因:", err)    // 输出: strconv.Atoi: parsing "hello": invalid syntax}

总结

通过本 Go语言 strconv 数值格式化 教程,你应该已经掌握了如何使用 strconv 包进行安全、高效的数值与字符串互转。记住:

  • 简单十进制整数转换 → 用 Itoa / Atoi
  • 需要指定进制或处理大整数 → 用 FormatInt / ParseInt
  • 处理小数 → 用 FormatFloat / ParseFloat
  • 永远不要忽略错误处理!

掌握这些技巧后,你就能轻松应对各种数据输入输出、配置解析、日志记录等场景中的 数值格式化 需求了。快去试试吧!

本文关键词:Go语言、strconv、数值格式化、教程