首頁 >後端開發 >Golang >如何在Go中使用Currency.Symbol使用逗號和千位分隔符號格式化貨幣值?

如何在Go中使用Currency.Symbol使用逗號和千位分隔符號格式化貨幣值?

Susan Sarandon
Susan Sarandon原創
2024-10-24 02:27:01569瀏覽

How to Format Currency Values with Commas and Thousand Separators Using Currency.Symbol in Go?

在Go中使用Currency.Symbol格式化貨幣值

在Go中,golang.org/x/text/currency包提供了格式化貨幣值的全面解決方案。該軟體包允許開發人員使用貨幣代碼、符號和本地化訊息,以人類可讀的格式格式化值。

以下範例示範如何使用貨幣.符號來格式化貨幣值:

<code class="go">unit, _ := currency.ParseISO("BRL")
p := message.NewPrinter(language.BrazilianPortuguese)
result := p.Sprint(currency.Symbol(unit.Amount(float64(valor) / 100)))</code>

上述程式碼的輸出是「R$ 123.456,78」。但是,如果您獲得的格式包含點而不是逗號且沒有千位分隔符,則可能是由於未在訊息中設定適當的區域設定或語言。 NewPrinter 函數。

要使用系統區域設定資源,您可以指定訊息中的語言。 NewPrinter 函數如下:

<code class="go">import (
    "fmt"

    "golang.org/x/text/currency"
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func main() {
    // Get the current locale
    locale, err := language.Parse(language.Default())
    if err != nil {
        panic(err)
    }

    // Use the locale to create a message printer
    p := message.NewPrinter(locale)

    // Format the currency value using currency.Symbol
    fmt.Println(p.Sprintf("%v", currency.Symbol(currency.MustParseISO("USD"), 12345678)))
}</code>

此方法會自動使用系統的區域設定來格式化貨幣值。例如,如果系統區域設定為“en_US”,則輸出將為“$12,345,678.00”。

透過結合使用currency.Symbol函數和message.NewPrinter函數以及正確的區域設定處理,您可以以多種區域設定和貨幣格式有效地格式化貨幣值。

以上是如何在Go中使用Currency.Symbol使用逗號和千位分隔符號格式化貨幣值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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