使用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 貨幣代碼以檢索正確的貨幣格式。但是,您必須提供用於格式化數字的語言:
// 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
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3