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

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

整数 字符串 分隔符 函数 981    来源:    2025-03-14

在Go语言中,可以通过自定义函数来实现整数的千位分隔符格式化输出。以下是一个简单的实现示例:

package main

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

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

    // 计算字符串的长度
    length := len(numStr)

    // 如果长度小于等于3,直接返回
    if length <= 3 {
        return numStr
    }

    // 创建一个字符串构建器
    var result strings.Builder

    // 从右到左遍历字符串,每三位插入一个逗号
    for i := 0; i < length; i++ {
        if (length-i)%3 == 0 && i != 0 {
            result.WriteByte(',')
        }
        result.WriteByte(numStr[i])
    }

    return result.String()
}

func main() {
    num := 1234567890
    formattedNum := formatNumberWithCommas(num)
    fmt.Println(formattedNum) // 输出: 1,234,567,890
}

代码解释:

  1. strconv.Itoa(num): 将整数转换为字符串。
  2. strings.Builder: 用于高效地构建字符串。
  3. (length-i)%3 == 0 && i != 0: 判断是否需要插入逗号。每三位插入一个逗号,但不在最前面插入。

示例输出:

1,234,567,890

注意事项:

  • 该函数仅适用于正整数。如果需要处理负数或浮点数,可以在函数中添加相应的逻辑。
  • 该函数假设输入是一个整数。如果输入是浮点数,需要先将其转换为整数或进行其他处理。

通过这种方式,你可以轻松地将整数格式化为带有千位分隔符的字符串。