在Go中使用Currency.Symbol格式化貨幣值
在Go中,golang.org/x/text/currency包提供了格式化貨幣值的全面解決方案。該套件允許開發人員使用貨幣代碼、符號和本地化訊息,以人類可讀的格式格式化值。
以下範例示範如何使用currency.Symbol 來格式化貨幣值:
unit, _ := currency.ParseISO("BRL")
p := message.NewPrinter(language.BrazilianPortuguese)
result := p.Sprint(currency.Symbol(unit.Amount(float64(valor) / 100)))
上述程式碼的輸出為「R$ 123.456,78」。但是,如果您獲得的格式包含點而不是逗號且沒有千位分隔符,則可能是由於未在訊息中設定適當的區域設定或語言。 NewPrinter 函數。
要使用系統區域設定資源,您需要可以指定訊息中的語言。 NewPrinter函數如下:
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)))
}
此方法將自動使用系統的區域設定來格式化貨幣值。例如,如果系統區域設定為“en_US”,則輸出將為“$12,345,678.00”。
透過結合使用currency.Symbol函數和message.NewPrinter函數以及正確的區域設定處理,您可以以多種區域設定和貨幣格式有效地格式化貨幣值。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3