«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу использовать ресурсы локали системы для форматирования валюты в Go?

Как я могу использовать ресурсы локали системы для форматирования валюты в Go?

Опубликовано 9 ноября 2024 г.
Просматривать:713

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

Форматирование валюты в Golang Использование валюты. Символ с golang.org/x/text/currency

Использование ресурсов локали системы

При использовании golang. org/x/text/currency для форматирования значений валюты в Golang, можно получить соответствующий формат из системы locale, используя функции 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