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