Saya mengetahui beberapa opsi bagus :
Bilangan bulat besar (misalnya, int64_t, mpz_t, setiap bignum lib ) untuk mewakili sen atau 10 n sen-katakanlah, sebuah integer merupakan 1/100 dari satu sen ($ 1,05 == 10500). Ini disebut integer berskala .
Pustaka tingkat tinggi untuk aritmatika desimal presisi sembarang seperti BigDecimal di Jawa, Desimal di Python, decimal.js di Javascript, boost :: multiprecision di C ++
String.
BCD yang dikemas (desimal kode biner) adalah metode yang lebih esoteris yang tampaknya populer di perangkat lunak lama. Baca lebih lanjut tentang itu.
Dalam kode produksi untuk bank (atau kartu kredit, ATM, sistem POS), tipe data apa yang paling sering digunakan? Saya terutama bertanya kepada mereka yang bekerja di bank.
EDIT: Tautan super berguna bagi mereka yang memiliki domain masalah yang sama (perlu menerapkan struktur data "uang" yang tidak rusak).
- http://martinfowler.com/eaaDev/quantity.html
- http://www.codeproject.com/Articles/28244/A-Money-type-for-the-CLR
- http://c2.com/cgi/wiki?MoneyObject
- http://www.setfiremedia.com/blog/7-top-tips-for-coding-with-currency
- http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
EDIT untuk orang yang mengatakan ini adalah pertanyaan duplikat : Ini adalah pertanyaan praktis bukan teoritis tentang "apa yang terbaik". Baca judul pertanyaan saya yang belum diedit. Saya bertanya apa yang dilihat orang secara langsung dalam basis kode bank.
Saya tahu BigDecimal jelas "terbaik", tetapi API yang bagus seperti itu tidak tersedia di mana-mana, percaya atau tidak, dan pustaka desimal lebih mahal daripada ints.