„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 kann ich Systemgebietsschemaressourcen für die Währungsformatierung in Go nutzen?

Wie kann ich Systemgebietsschemaressourcen für die Währungsformatierung in Go nutzen?

Veröffentlicht am 09.11.2024
Durchsuche:608

How Can I Leverage System Locale Resources for Currency Formatting in Go?

Währungsformatierung in Golang unter Verwendung des Währungssymbols von golang.org/x/text/currency

Verwendung von Systemgebietsschemaressourcen

Bei Verwendung von Golang. org/x/text/currency zum Formatieren von Währungswerten in Golang verwenden, ist es möglich, das entsprechende Format aus dem Systemgebietsschema abzurufen, indem die DisplayTags genutzt werden und FromTag-Funktionen. Die DisplayTags-Funktion stellt lokalisierte Namen für Sprachen bereit und FromTag ruft eine Währung basierend auf dem Sprach-Tag ab.

n := display.Tags(language.English)
for _, lcode := range []string{"en_US", "pt_BR", "de", "ja", "hi"} {
    lang := language.MustParse(lcode)
    cur, _ := currency.FromTag(lang)
    scale, _ := currency.Cash.Rounding(cur) // fractional digits
    dec := number.Decimal(100000.00, number.Scale(scale))
    p := message.NewPrinter(lang)
    p.Printf("$v (%v): %v%v\n", n.Name(lang), cur, currency.Symbol(cur), dec)
}

// Output:
//         American English (USD): $100,000.00
//     Brazilian Portuguese (BRL): R$100.000,00
//                   German (EUR): €100.000,00
//                 Japanese (JPY): ¥100,000
//                    Hindi (INR): ₹1,00,000.00

Sprach- und ISO-Codes angeben

Alternativ können Sie die Sprache oder den ISO-Währungscode explizit angeben, um das richtige Währungsformat abzurufen. Sie müssen jedoch die Sprache angeben, in der die Zahl formatiert werden soll:

// Parse ISO currency code and specify language
for _, iso := range []string{"USD", "BRL", "EUR", "JPY", "INR"} {
    cur := currency.MustParseISO(iso)
    scale, _ := currency.Cash.Rounding(cur) // fractional digits
    dec := number.Decimal(100000.00, number.Scale(scale))
    p := message.NewPrinter(language.English)
    p.Printf("%v: %v%v\n", cur, currency.Symbol(cur), dec)
}

// Output:
// USD: $100,000.00
// BRL: R$100,000.00
// EUR: €100,000.00
// JPY: ¥100,000
// INR: ₹100,000.00
Freigabeerklärung Dieser Artikel wird unter der Adresse 1729688479 reproduziert. 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