插件窝 干货文章 Go语言整数格式化输出:如何用Go语言实现千分位分隔符?

Go语言整数格式化输出:如何用Go语言实现千分位分隔符?

字符串 length 千分 逗号 880    来源:    2025-03-13

在Go语言中,标准库并没有直接提供将整数格式化为带有千分位分隔符的字符串的功能。不过,你可以通过自定义函数来实现这个功能。以下是一个简单的实现示例:

package main

import (
    "fmt"
    "strconv"
    "strings"
)

// 将整数格式化为带有千分位分隔符的字符串
func formatWithThousandSeparator(n int) string {
    // 将整数转换为字符串
    s := strconv.Itoa(n)

    // 计算需要插入逗号的位置
    length := len(s)
    commaCount := (length - 1) / 3

    // 创建一个足够大的缓冲区来存储结果
    result := make([]byte, length+commaCount)

    // 从字符串的末尾开始处理
    index := len(result) - 1
    for i := length - 1; i >= 0; i-- {
        result[index] = s[i]
        index--

        // 每处理完3个字符,插入一个逗号
        if (length-i)%3 == 0 && i != 0 {
            result[index] = ','
            index--
        }
    }

    return string(result)
}

func main() {
    number := 1234567890
    formattedNumber := formatWithThousandSeparator(number)
    fmt.Println(formattedNumber) // 输出: 1,234,567,890
}

代码解释:

  1. strconv.Itoa(n): 将整数 n 转换为字符串。
  2. length := len(s): 获取字符串的长度。
  3. commaCount := (length - 1) / 3: 计算需要插入多少个逗号。
  4. result := make([]byte, length+commaCount): 创建一个足够大的字节切片来存储结果。
  5. for i := length - 1; i >= 0; i--: 从字符串的末尾开始遍历,每处理完3个字符就插入一个逗号。
  6. result[index] = ',': 在适当的位置插入逗号。

输出结果:

1,234,567,890

这个函数可以将整数格式化为带有千分位分隔符的字符串。你可以根据需要进一步扩展或优化这个函数。