Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengendalikan Pemformatan Mata Wang di Golang?

Bagaimana Mengendalikan Pemformatan Mata Wang di Golang?

Barbara Streisand
Barbara Streisandasal
2024-10-24 03:22:02115semak imbas

How to Handle Currency Formatting in Golang?

Pemformatan Mata Wang yang Betul di Golang

Apabila bekerja dengan pemformatan mata wang, adalah penting untuk mempertimbangkan keperluan khusus untuk setiap gabungan mata wang dan bahasa. Menggunakan golang.org/x/text/currency, anda boleh memformat nilai dengan mudah berdasarkan konvensyen tempatan. Walau bagaimanapun, anda mungkin menghadapi beberapa cabaran dalam mendapatkan output yang diingini.

Menggunakan Simbol Mata Wang

Dalam kod anda, anda menggunakan mata wang.Simbol untuk mendapatkan semula simbol mata wang bagi kod ISO yang ditentukan. Walau bagaimanapun, apabila menggunakan kaedah ini tanpa menyediakan konteks bahasa, anda mungkin tidak mendapat pemisah yang dijangkakan atau pemformatan nombor.

Menggabungkan Format Setempat

Daripada cuba mencipta secara manual format anda, anda boleh memanfaatkan pakej paparan dan mesej untuk mendapatkan semula format yang sesuai secara automatik berdasarkan bahasa dan wilayah. Berikut ialah contoh:

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

Fungsi ini mengambil nilai, kod mata wang dan kod bahasa serta mengembalikan rentetan mata wang yang diformat dengan betul.

Mengendalikan Unit Penambahan

Sesetengah mata wang mempunyai unit kenaikan tetap, seperti 5 atau 10 sen. Untuk mengambil kira perkara ini, anda boleh menggunakan pakej nombor untuk menentukan kenaikan:

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

Dengan menyediakan konteks bahasa, membuat kesimpulan format mata wang daripada kod bahasa dan mempertimbangkan unit kenaikan, anda boleh membuat yang fleksibel dan tepat penyelesaian pemformatan mata wang di Golang menggunakan golang.org/x/text/currency.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Pemformatan Mata Wang di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn