Bagaimana untuk Membetulkan Isu Pemformatan Mata Wang dengan Mata Wang.Simbol dalam Go?

Patricia Arquette
Lepaskan: 2024-10-24 03:43:30
asal
705 orang telah melayarinya

How to Fix Currency Formatting Issues with Currency.Symbol in Go?

Pemformatan Mata Wang dalam Go dengan Golang.org/x/text/Simbol Mata Wang

Golang.org/x/text/ pakej mata wang menyediakan sokongan yang meluas untuk memformat nilai mata wang. Artikel ini menunjukkan cara memanfaatkan Mata Wang.Simbol untuk mencapai pemformatan yang betul, menangani isu biasa seperti pemisah ribuan yang tidak betul dan peletakan mata.

Isu:

Pengguna menghadapi isu yang output mereka tidak mempunyai beribu-ribu pemisah dan salah memaparkan mata dan bukannya koma untuk pemformatan mata wang.

Masalah Dasar:

Isu ini berpunca daripada kelakuan lalai mata wang.Simbol, yang mengembalikan simbol mata wang tanpa sebarang pemformatan khusus setempat. Akibatnya, titik perpuluhan dan pemisah beribu-ribu tidak digunakan dengan betul.

Penyelesaian 1: Menyimpulkan Format Mata Wang daripada Kod Bahasa

Satu penyelesaian melibatkan membuat kesimpulan format mata wang daripada kod bahasa yang digunakan dalam pakej bahasa. Dengan menetapkan bahasa Pencetak ke tempat yang dikehendaki, output akan diformatkan mengikut konvensyen setempat. Sebagai contoh, untuk Portugis Brazil, output akan diformatkan sebagai "R$ 123.456,78."

<code class="go">package main

import (
    "golang.org/x/text/currency"
    "golang.org/x/text/language"
    "golang.org/x/text/message"
)

func main() {
    unit, _ := currency.ParseISO("BRL")
    const valor = 12345678
    p := message.NewPrinter(language.BrazilianPortuguese)
    formatted := p.Sprint(currency.Symbol(unit.Amount(float64(valor) / 100)))
    println(formatted) // Output: R$ 123.456,78
}</code>
Salin selepas log masuk

Penyelesaian 2: Menghuraikan Kod Mata Wang ISO dan Menentukan Bahasa

Pendekatan lain ialah menghuraikan kod mata wang ISO dan secara eksplisit menetapkan bahasa untuk pemformatan. Kaedah ini memberikan lebih fleksibiliti dalam menentukan format output yang diingini.

<code class="go">package main

import (
    "golang.org/x/text/currency"
    "golang.org/x/text/language"
    "golang.org/x/text/message"
    "golang.org/x/text/number"
)

func main() {
    unit, _ := currency.ParseISO("BRL")
    const valor = 12345678
    lang := language.Portuguese
    p := message.NewPrinter(lang)
    formatted := p.Sprintf(
        number.Format("%q%v",
            currency.Symbol(unit.Amount(float64(valor) / 100), lang),
            number.Decimal(valor, number.Scale(2)),
        ))
    println(formatted) // Output: R$ 123.456,78
}</code>
Salin selepas log masuk

Pertimbangan untuk Mata Wang Bertambah Bulat

Untuk mata wang yang dibundarkan secara berperingkat (cth., sebanyak 0.05 atau 0.50), pemprosesan tambahan diperlukan untuk menyediakan pemformat Perpuluhan dengan IncrementString yang sesuai. Ini memastikan bahawa nilai bulat diformatkan dengan sewajarnya.

Kesimpulan

Dengan menggunakan Mata Wang.Simbol bersama-sama dengan percetakan sedar bahasa, pembangun boleh mencapai pemformatan mata wang yang tepat dalam Go , menangani isu biasa pemisah ribuan yang salah dan titik perpuluhan yang salah letak.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Pemformatan Mata Wang dengan Mata Wang.Simbol dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!