Maison > développement back-end > Golang > le corps du texte

Comment gérer le formatage des devises dans Golang ?

Barbara Streisand
Libérer: 2024-10-24 03:22:02
original
123 Les gens l'ont consulté

How to Handle Currency Formatting in 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>
Copier après la connexion

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

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!