「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Go で通貨の書式設定にシステム ロケール リソースを活用するにはどうすればよいですか?

Go で通貨の書式設定にシステム ロケール リソースを活用するにはどうすればよいですか?

2024 年 11 月 9 日に公開
ブラウズ:402

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 は言語タグに基づいて通貨を取得します。

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("$v (%v): %v%v\n", n.Name(lang), cur, currency.Symbol(cur), dec)
}

// Output:
//         American English (USD): $100,000.00
//     Brazilian Portuguese (BRL): R$100.000,00
//                   German (EUR): €100.000,00
//                 Japanese (JPY): ¥100,000
//                    Hindi (INR): ₹1,00,000.00

言語と ISO コードの指定

または、言語または ISO 通貨コードを明示的に指定して、正しい通貨形式を取得することもできます。ただし、数値をフォーマットする言語を指定する必要があります:

// 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: $100,000.00
// BRL: R$100,000.00
// EUR: €100,000.00
// JPY: ¥100,000
// INR: ₹100,000.00
リリースステートメント この記事は次の場所に転載されています: 1729688479 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3