240 votes

Quel type de données utiliser pour l'argent en Java ?

Quel type de données devez-vous utiliser pour l'argent en Java ?

2 votes

Cela dépend des opérations que vous allez faire. Veuillez nous fournir plus d'informations.

0 votes

@eversor Pouvez-vous me donner une description du type de données à utiliser pour les différentes opérations ?

1 votes

Je fais des calculs qui m'obligent à représenter les centimes avec précision.

186voto

Buhake Sindi Points 38654

Java a Currency qui représente les codes de devise ISO 4217. BigDecimal est le meilleur type pour représenter les valeurs décimales des devises.

Joda Money a prévu une bibliothèque pour représenter l'argent.

10 votes

Pourquoi ne pouvons-nous pas utiliser un flotteur ou un double à la place ?

27 votes

@Borat Sagdiyev C'est la raison pour laquelle . Vous pouvez également vous référer à este .

4 votes

@Borat : tu peux si tu sais ce que tu fais, tu vois. cet article par Peter Lawrey. mais il semble au moins aussi fastidieux de faire tous les arrondis que d'utiliser BigDecimals.

30voto

ratchet freak Points 22412

Un type intégral représentant la plus petite valeur possible. En d'autres termes, votre programme doit penser en cents et non en dollars/euros.

Cela ne devrait pas vous empêcher de faire traduire par le gui en dollars/euros.

0 votes

Gardez à l'esprit que le montant de l'argent peut dépasser la taille de l'int.

5 votes

@eversor cela nécessiterait plus de 20 millions de dollars la plupart des applications n'auraient pas besoin de cette somme si elles en ont besoin un long sera suffisant car même nos gouvernements ne gèrent pas assez d'argent pour déborder cela.

5 votes

@ratchetfreak Il est probablement préférable d'utiliser un long alors.

18voto

Phil Parsons Points 1332

BigDecimal peut être utilisé, une bonne explication de la raison de ne pas utiliser Float ou Double peut être vue ici : Pourquoi ne pas utiliser Double ou Float pour représenter la monnaie ?

6voto

Liviu T. Points 8894

J'utiliserais Joda Money

Il n'en est qu'à la version 0.6, mais il est très prometteur.

4voto

Anthony Blake Points 3424

BigDecimal est le meilleur type de données à utiliser pour les devises.

Il existe un grand nombre de conteneurs pour les devises, mais ils utilisent tous BigDecimal comme type de données sous-jacent. Vous ne vous tromperez pas avec BigDecimal, en utilisant probablement l'arrondi BigDecimal.ROUND_HALF_EVEN.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X