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