首頁  >  文章  >  後端開發  >  如何在 Go 中格式化數千個逗號的整數?

如何在 Go 中格式化數千個逗號的整數?

Patricia Arquette
Patricia Arquette原創
2024-10-30 18:57:30566瀏覽

How can I format integers with thousands commas in Go?

Go 中格式化帶有千位逗號的整數

Go 內建的fmt.Printf 函數本身不支援輸出帶有千位元位逗號的整數。但是,有多種方法可以實現此目的。

一種選擇是使用 golang.org/x/text/message 包,它為 Unicode CLDR 支援的任何語言提供本地化格式。以下是一個範例:

<code class="go">package main

import (
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func main() {
    p := message.NewPrinter(language.English)
    p.Printf("%d\n", 1000)

    // Output:
    // 1,000
}</code>

此程式碼使用英語語言區域設置,但您可以根據需要指定任何其他支援的區域設定。

另一個選擇是使用第三方函式庫,例如作為 [github.com/AlekSi/decimal](https://github.com/AlekSi/decimal)。該庫提供了多種格式化數字的方法,包括添加數千個逗號的功能。以下是範例:

<code class="go">package main

import (
    "github.com/AlekSi/decimal"
)

func main() {
    num := decimal.NewFromFloat(1000)
    str := num.String()

    fmt.Println(str)

    // Output:
    // 1,000
}</code>

最後,如果您不想使用任何外部函式庫,您可以自行手動格式化數字。這相對簡單。首先,您需要將整數轉換為字串。然後,您需要在適當的位置插入逗號。操作方法如下:

<code class="go">func fmtComma(n int) string {
    str := strconv.Itoa(n)
    formatted := ""

    for i := len(str); i > 0; i -= 3 {
        if i == len(str) {
            formatted = str[:i]
        } else {
            formatted = str[i-3:i] + "," + formatted
        }
    }

    return formatted
}

func main() {
    fmt.Println(fmtComma(1000))

    // Output:
    // 1,000
}</code>

以上是如何在 Go 中格式化數千個逗號的整數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn