Je connais quelques bonnes options :
Grands entiers (par exemple, int64_t, mpz_t, toute lib bignum ) pour représenter des cents ou 10 -n cents - disons, un entier représente 1/100 de penny (1,05 $ == 10500). C'est ce qu'on appelle un entier mis à l'échelle .
Bibliothèque de haut niveau pour l'arithmétique décimale de précision arbitraire telle que BigDecimal en Java, Decimal en Python, decimal.js en Javascript, boost :: multiprecision en C ++
Cordes.
Les BCD emballés (décimales codées binaires) sont une méthode plus ésotérique qui semblait populaire dans les anciens logiciels. En savoir plus au sujet il.
Dans le code de production pour les banques (ou cartes de crédit, distributeurs automatiques de billets, systèmes POS), quel type de données est le plus utilisé? Je demande surtout à ceux qui travaillaient pour les banques.
EDIT: Liens super utiles pour ceux ayant le même domaine problématique (ayant besoin d'implémenter une structure de données "monétaire" qui ne casse pas).
- 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 pour le boursier qui a dit qu'il s'agissait d'une question en double : il s'agit d'une question pratique et non théorique de "quel est le meilleur". Lisez le titre inédit de ma question. Je demande ce que les gens ont vu de première main dans les bases de code des banques.
Je sais que BigDecimal est "le meilleur" évidemment, mais de belles API comme celle-ci ne sont pas disponibles partout, croyez-le ou non, et les bibliothèques décimales sont chères par opposition aux ints.