Wie gehe ich mit der Währungsformatierung in Golang um?

Barbara Streisand
Freigeben: 2024-10-24 03:22:02
Original
123 Leute haben es durchsucht

How to Handle Currency Formatting in Golang?

Richtige Währungsformatierung in Golang

Bei der Arbeit mit der Währungsformatierung ist es wichtig, die spezifischen Anforderungen für jede Währungs- und Sprachkombination zu berücksichtigen. Mit golang.org/x/text/currency können Sie Werte ganz einfach basierend auf lokalen Konventionen formatieren. Es kann jedoch zu einigen Herausforderungen kommen, die gewünschte Ausgabe zu erhalten.

Währungssymbole verwenden

In Ihrem Code verwenden Sie „currency.Symbol“, um das Währungssymbol für abzurufen angegebenen ISO-Code. Wenn Sie diese Methode jedoch ohne Bereitstellung eines Sprachkontexts verwenden, erhalten Sie möglicherweise nicht die erwarteten Trennzeichen oder Zahlenformatierungen.

Einbinden lokaler Formate

Anstatt zu versuchen, sie manuell zu erstellen Wenn Sie Ihr Format anpassen, können Sie die Anzeige- und Nachrichtenpakete nutzen, um basierend auf der Sprache und Region automatisch das geeignete Format abzurufen. Hier ist ein Beispiel:

<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>
Nach dem Login kopieren

Diese Funktion nimmt einen Wert, einen Währungscode und einen Sprachcode auf und gibt eine ordnungsgemäß formatierte Währungszeichenfolge zurück.

Umgang mit Inkrementeinheiten

Einige Währungen haben eine feste Schritteinheit, beispielsweise 5 oder 10 Cent. Um dies zu berücksichtigen, können Sie das Zahlenpaket verwenden, um das Inkrement anzugeben:

<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>
Nach dem Login kopieren

Durch die Bereitstellung des Sprachkontexts, das Ableiten des Währungsformats aus Sprachcodes und die Berücksichtigung von Inkrementeinheiten können Sie flexibel und genau erstellen Währungsformatierungslösungen in Golang unter golang.org/x/text/currency.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit der Währungsformatierung in Golang um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!