Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Memformat angka dengan benar bisa menjadi tugas yang rumit. Dan memformat mata uang menghadirkan tantangan tambahan yang melibatkan pelokalan. Untungnya, Go memiliki fitur untuk membantu.

Pustaka standar Go menyediakan berbagai alat untuk memformat angka. Paket strconv menyertakan fungsi untuk mem-parsing dan mengonversi angka ke dan dari string.

Paket strconv

Itu strconv package adalah alat yang ampuh untuk mengonversi antara angka dan string. Anda dapat menggunakannya untuk bekerja dengan angka dalam berbagai format.

strconv adalah bagian dari pustaka standar, sehingga relevan untuk banyak konsep Go dasar yang harus Anda ketahui. Inilah cara Anda dapat mengimpornya:

impor"strconv"

Paket ini menyediakan fungsi untuk mengonversi angka ke dan dari string dalam berbagai format. Ini termasuk fungsi untuk bekerja dengan bilangan bulat dan angka floating-point.

instagram viewer

strconv juga dapat menangani konversi ke dan dari format biner, oktal, dan heksadesimal serta notasi ilmiah.

Memformat Bilangan Bulat di Go

Paket strconv Itoa fungsi menyediakan fungsionalitas untuk mengubah bilangan bulat menjadi string. Itu Itoa fungsi mengambil bilangan bulat dan mengembalikan representasi string dari bilangan bulat itu.

impor (
"fmt"
"strconv"
)

fungsiutama() {
bilangan bulat := 3043
stringVersion := strconv. Itoa (bilangan bulat)
fmt. Println (stringVersion) // Keluaran: "3043"
}

Kode ini mengubah nilai integer menjadi string menggunakan Itoa. Itu kemudian mengeluarkan string yang dihasilkan ke konsol menggunakan fmt kemasan.

Selain itu Itoa fungsi, strconv menyediakan:

  • FormatInt untuk memformat bilangan bulat sebagai string dengan basis tertentu
  • LampiranInt untuk menambahkan bilangan bulat dalam bentuk string ke sepotong byte.

Inilah cara Anda dapat menggunakan FormatInt fungsi untuk memformat bilangan bulat:

impor (
"fmt"
"strconv"
)

fungsiutama() {
bilangan bulat := 12345
string := strconv. FormatInt(int64(bilangan bulat), 10)
fmt. Println (string) // Keluaran: "12345"
}

Kode ini menggunakan int64() untuk mengubah nilai asli menjadi bilangan bulat 64-bit. Kemudian meneruskan hasilnya ke FormatInt, bersama dengan basis konversi, dalam hal ini 10. FormatInt mengembalikan string yang Println kemudian output ke konsol.

Itu LampiranInt fungsi mengambil potongan byte, an int64 nilai, dan basis.

impor (
"fmt"
"strconv"
)

fungsiutama() {
bilangan bulat := 12345
byteSlice := membuat([]byte, 0, 20)
byteSlice = strconv. AppendInt (byteSlice, int64(bilangan bulat), 10)
fmt. Cetak(rangkaian(byteSlice)) // Keluaran: "12345"
}

Perhatikan bahwa AppendInt menerima irisan byte untuk ditambahkan, dan mengembalikan irisan byte yang dihasilkan. Dalam hal ini, irisan byte awal kosong, tetapi memiliki kapasitas 20 untuk menyimpan representasi string yang dihasilkan dari bilangan bulat.

Parsing String sebagai Integer

Itu Atoi fungsi mengubah string menjadi bilangan bulat. Dibutuhkan string sebagai input dan mengembalikan representasi integer dari string itu bersama dengan tipe kesalahan.

Inilah cara Anda dapat menggunakan Atoi fungsi untuk konversi string-to-integer:

impor (
"fmt"
"strconv"
)

fungsiutama() {
string := "123"
bilangan bulat, err := strconv. Atoi (senar)

jika salah!= nol {
fmt. Cetak (err)
}

fmt. Println (bilangan bulat)
}

Program menampilkan nilai integer ke konsol:

Anda juga dapat menggunakan ParseUint berfungsi untuk mem-parsing representasi string dari bilangan bulat yang tidak ditandatangani.

kemasan utama

impor (
"fmt"
"strconv"
)

fungsiutama() {
// mengurai string sebagai basis 10 dan 0-bit unsigned integer
val, err := strconv. ParseUint("12345", 10, 0)

jika salah!= nol {
fmt. Cetak (err)
} kalau tidak {
fmt. Cetak (val) // Keluaran: 12345
}
}

Itu ParseUint fungsi mem-parsing string 12345 sebagai basis sepuluh, bilangan bulat tak bertanda. Ukuran 0-bit memastikannya mengembalikan tipe int standar. Ini mengembalikan nilai parsing dan kesalahan.

Anda dapat menggunakan ParseFloat berfungsi untuk mem-parsing representasi string dari angka floating point.

impor (
"fmt"
"strconv"
)

fungsiutama() {
// mengurai string sebagai angka floating-point 64-bit
val, err := strconv. ParseFloat("3.14", 64)

jika salah!= nol {
fmt. Cetak (err)
} kalau tidak {
fmt. Cetak (val) // Keluaran: 3.14
}
}

Itu ParseFloat fungsi mem-parsing string sebagai angka floating point 64-bit dan mengembalikan string dan tipe kesalahan.

Memformat Mata Uang di Go

Membangun aplikasi yang berinteraksi dengan mata uang membutuhkan pemformatan dan penguraian angka. Bekerja dengan mata uang yang berbeda bisa menjadi tantangan, tetapi strconv Dan akuntansi paket dapat membantu Anda memformatnya.

Inilah cara Anda mengurai string mata uang ke pelampung untuk operasi pada mata uang:

impor (
"fmt"
"strconv"
)

fungsiutama() {
// String mata uang untuk diuraikan
currencyStr := "$1,234.56"

// Hapus simbol mata uang dan ubah menjadi pelampung
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)

jika salah!= nol {
fmt. Cetak (err)
kembali
}

// Cetak nilai float yang diurai
fmt. Println (floatVal) // Keluaran: 1234.56
}

Itu currencyStr variabel adalah representasi string dari nilai mata uang dengan tanda dolar sebagai simbolnya. Program ini menggunakan ParseFloat berfungsi untuk mengurai string mata uang mulai dari elemen kedua (setelah simbol mata uang).

Secara konvensional, sebaiknya hindari penggunaan float untuk mata uang karena dapat mengakibatkan kesalahan perhitungan dan bug dalam produksi.

Atau, Anda dapat menggunakan paket pihak ketiga seperti akuntansi yang memiliki fungsi untuk memformat dan mem-parsing mata uang.

Jalankan perintah terminal ini di direktori proyek Anda untuk menginstal paket akuntansi:

dapatkan github.com/leekchan/accounting

Mulailah dengan membuat instance dari Akuntansi struct. Ingatlah bahwa struct adalah salah satunya Fitur inti berorientasi objek Go, mirip dengan kelas dari bahasa lain. Anda dapat menginisialisasi instans Akuntansi dengan simbol mata uang dan nilai presisi, di antara opsi lainnya.

Anda dapat menggunakan FormatMoney fungsi paket akuntansi untuk memformat angka menjadi mata uang.

kemasan utama

impor (
"fmt"
"matematika/besar"

"github.com/leekchan/akuntansi"
)

fungsiutama() {
ac := akuntansi. Akuntansi{Simbol: "$", Presisi: 2}
fmt. Println (ac. FormatUang(123456789.213123))
fmt. Println (ac. FormatUang(12345678))
fmt. Println (ac. FormatMoney (besar. Tikus Baru(77777777, 3)))
fmt. Println (ac. FormatMoney (besar. Tikus Baru(-77777777, 3)))
fmt. Println (ac. FormatMoneyBigFloat (besar. Float Baru(123456789.213123)))
}

Itu ac variabel adalah contoh akuntansi. Program ini memformat dan mencetak nilai moneter menggunakan FormatMoney Dan FormatMoneyBigFloat metode contoh akuntansi. Itu Tikus Baru fungsi dari besar paket membuat bilangan rasional yang diberi pembilang dan penyebut. Itu NewFloat fungsi membantu mewakili angka floating point yang besar.

Go Dapat Membantu Anda Memformat Jenis Lain Juga

Go menyediakan banyak fungsi untuk mengonversi angka dan mata uang secara langsung.

Bahasa ini juga menawarkan sistem pemformatan string yang kuat. Fungsi Sprintf yang terinspirasi dari paket fmt memungkinkan Anda membuat string terformat menggunakan sintaks placeholder khusus. Anda dapat menggunakan Sprintf untuk membuat string yang menyertakan angka dan nilai mata uang, membuatnya mudah untuk membuat keluaran yang dapat dibaca manusia.