- Memanipulasi jumlah uang adalah tugas komputasi yang umum, tetapi bahasa pemrograman arus utama tidak memiliki tipe data bawaan untuk merepresentasikan jumlah uang
- Hal ini dapat menyebabkan masalah pembulatan dalam tugas seperti pembayaran cicilan, transaksi valuta asing, pemrosesan biaya, dan pemungutan pajak
- Money adalah pustaka Kotlin yang membantu mempermudah perhitungan dan alokasi jumlah uang
- Mendukung operasi matematika pada jumlah uang, perhitungan persentase, dan alokasi sehingga dapat memodelkan berbagai kasus penggunaan
- Juga mendukung cryptocurrency secara bawaan
- Fitur alokasi
- Salah satu keunggulan terbesar pustaka ini adalah fitur alokasinya
- Membagi jumlah uang menjadi beberapa bagian sambil menjamin totalnya tetap sama dengan jumlah awal
- Misalnya, ketika pelanggan membayar pembelian senilai USD 100.00 dalam tiga kali cicilan, kerugian akibat masalah pembulatan dapat dicegah
- Cara alokasi
- Gunakan metode
allocate() untuk menjamin hasil tanpa selisih dari jumlah awal.
- Untuk mengalokasikan berdasarkan rasio, kirim daftar nilai
Percentage.
- Secara default, pustaka akan mengalokasikan selisih secara otomatis, tetapi bisa disesuaikan dengan strategi alokasi yang diinginkan.
- Penutup
- Tulisan ini adalah pengenalan singkat terhadap fitur-fitur pustaka.
- Ada rencana untuk menjaga API tetap ringkas serta secara bertahap memperluas dukungan pengembangan Android dan fitur persistensi serta serialisasi.
- Versi saat ini diharapkan bermanfaat bagi orang-orang yang memanipulasi jumlah uang dalam proyek Kotlin.
Ringkasan GN⁺
- Menangani jumlah uang adalah pekerjaan umum dalam pemrograman, tetapi dapat menjadi rumit karena masalah pembulatan.
- Pustaka Money adalah pustaka Kotlin yang dirancang untuk menyelesaikan masalah ini, dengan dukungan alokasi dan perhitungan jumlah uang yang akurat.
- Pustaka ini mendukung 306 mata uang dan 2283 cryptocurrency, sehingga berguna untuk menangani uang dalam proyek Kotlin.
- Proyek lain dengan fungsi serupa antara lain pustaka Joda-Money untuk Java.
1 komentar
Pendapat Hacker News
penggunaan fungsi infix terasa agak aneh
plusdanminustidak dioverload alih-alih memakai "increaseBy" dan "decreaseBy"selamat untuk pustakanya dan terima kasih sudah membagikannya
mengingatkan pada kegunaan tipe uang di Rebol
pertanyaan tentang edge case yang muncul saat menangani uang
menyukai dukungan untuk mata uang kustom
aneh bahwa bahasa spreadsheet tidak mendukung uang dengan baik
tipe
decimaldi C# cocok untuk perhitungan uangbelajar banyak dari komentar-komentarnya, dan itu akan membantu iterasi berikutnya dari pustaka ini
lebih menginginkan test suite yang menyeluruh untuk menangani semua edge case daripada pustaka itu sendiri
tampaknya memenuhi semua persyaratan, dan ada pembahasan yang bagus tentang kesulitan utama dalam menangani uang