首頁 > 後端開發 > Golang > 主體

如何利用系統區域設定資源在 Go 中進行貨幣格式化?

Patricia Arquette
發布: 2024-10-24 05:15:30
原創
285 人瀏覽過

How Can I Leverage System Locale Resources for Currency Formatting in Go?

Golang 中的貨幣格式使用golang.org/x/text/currency 中的currency.Symbol

使用系統區域設定資源

使用golang 時。 org/x/text/currency 來格式化 Golang 中的貨幣值,可以透過利用 DisplayTags 和 FromTag 函數從系統語言環境中檢索適當的格式。 DisplayTags 函數提供語言的本地化名稱,FromTag 根據語言標籤檢索貨幣。

<code class="go">n := display.Tags(language.English)
for _, lcode := range []string{"en_US", "pt_BR", "de", "ja", "hi"} {
    lang := language.MustParse(lcode)
    cur, _ := currency.FromTag(lang)
    scale, _ := currency.Cash.Rounding(cur) // fractional digits
    dec := number.Decimal(100000.00, number.Scale(scale))
    p := message.NewPrinter(lang)
    p.Printf("%24v (%v): %v%v\n", n.Name(lang), cur, currency.Symbol(cur), dec)
}

// Output:
//         American English (USD): 0,000.00
//     Brazilian Portuguese (BRL): R0.000,00
//                   German (EUR): €100.000,00
//                 Japanese (JPY): ¥100,000
//                    Hindi (INR): ₹1,00,000.00</code>
登入後複製

指定語言和 ISO 代碼

或者,您可以明確指定語言或 ISO貨幣代碼以檢索正確的貨幣格式。但是,您必須提供用於格式化數字的語言:

<code class="go">// Parse ISO currency code and specify language
for _, iso := range []string{"USD", "BRL", "EUR", "JPY", "INR"} {
    cur := currency.MustParseISO(iso)
    scale, _ := currency.Cash.Rounding(cur) // fractional digits
    dec := number.Decimal(100000.00, number.Scale(scale))
    p := message.NewPrinter(language.English)
    p.Printf("%v: %v%v\n", cur, currency.Symbol(cur), dec)
}

// Output:
// USD: 0,000.00
// BRL: R0,000.00
// EUR: €100,000.00
// JPY: ¥100,000
// INR: ₹100,000.00</code>
登入後複製

以上是如何利用系統區域設定資源在 Go 中進行貨幣格式化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!