Maison  >  Article  >  développement back-end  >  Comment puis-je exploiter les ressources locales du système pour le formatage des devises dans Go ?

Comment puis-je exploiter les ressources locales du système pour le formatage des devises dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 05:15:30285parcourir

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

Formatage de la devise dans Golang à l'aide de la devise.Symbol de golang.org/x/text/currency

Utilisation des ressources locales du système

Lors de l'utilisation de Golang. org/x/text/currency pour formater les valeurs monétaires dans Golang, il est possible de récupérer le format approprié à partir des paramètres régionaux du système en tirant parti des fonctions DisplayTags et FromTag. La fonction DisplayTags fournit des noms localisés pour les langues et FromTag récupère une devise basée sur la balise de langue.

<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>

Spécification de la langue et des codes ISO

Vous pouvez également spécifier explicitement la langue ou l'ISO code de devise pour récupérer le format de devise correct. Cependant, vous devez fournir la langue dans laquelle formater le numéro :

<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>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn