„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie gehe ich mit der Währungsformatierung in Golang um?

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

Veröffentlicht am 08.11.2024
Durchsuche:830

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 können jedoch einige Schwierigkeiten auftreten, 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.

Einbeziehen 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:

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))
}

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

Handhabung von Inkrementierungseinheiten

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:

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)
}

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

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729688989 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3