Maison > développement back-end > Golang > 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
Libérer: 2024-10-24 05:15:30
original
346 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal