Maison >développement back-end >Golang >Comment gérer le formatage des devises dans Golang ?
Formatage approprié des devises dans Golang
Lorsque vous travaillez avec le formatage des devises, il est essentiel de prendre en compte les exigences spécifiques de chaque devise et combinaison de langue. En utilisant golang.org/x/text/currency, vous pouvez facilement formater les valeurs en fonction des conventions locales. Cependant, vous pourriez rencontrer quelques difficultés pour obtenir le résultat souhaité.
Utilisation des symboles monétaires
Dans votre code, vous utilisez monnaie.Symbol pour récupérer le symbole monétaire du code ISO spécifié. Cependant, lorsque vous utilisez cette méthode sans fournir de contexte linguistique, vous risquez de ne pas obtenir les séparateurs ou le formatage des nombres attendus.
Incorporation des formats locaux
Au lieu d'essayer de créer manuellement votre format, vous pouvez exploiter les packages d'affichage et de messages pour récupérer automatiquement le format approprié en fonction de la langue et de la région. Voici un exemple :
<code class="go">import ( "fmt" "golang.org/x/text/currency" "golang.org/x/text/language" "golang.org/x/text/message" ) func formatCurrency(value int64, currencyCode string, languageCode string) string { lang, _ := language.Parse(languageCode) p := message.NewPrinter(lang) unit, _ := currency.ParseISO(currencyCode) return p.Sprintf("%v%v", currency.Symbol(unit), float64(value)) }</code>
Cette fonction prend en compte une valeur, un code de devise et un code de langue et renvoie une chaîne de devise correctement formatée.
Gestion des unités d'incrémentation
Certaines devises ont une unité d'incrément fixe, comme 5 ou 10 cents. Pour en tenir compte, vous pouvez utiliser le package de nombres pour spécifier l'incrément :
<code class="go">import ( "golang.org/x/text/currency" "golang.org/x/text/number" ) func formatWithIncrement(value int64, currencyCode string, increment int) string { unit, _ := currency.ParseISO(currencyCode) scale, inc := currency.Cash.Rounding(unit) dec := number.Decimal(float64(value), number.Scale(scale), number.IncrementString(fmt.Sprintf("%.2f", float64(inc)))) return fmt.Sprintf("%v%v", currency.Symbol(unit), dec) }</code>
En fournissant le contexte linguistique, en déduisant le format monétaire à partir des codes de langue et en prenant en compte les unités d'incrémentation, vous pouvez créer des solutions de formatage de devises dans Golang en utilisant golang.org/x/text/currency.
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!