176 votes

Ajout pour BigDecimal

Je veux faire des sommes simples avec des valeurs de devise exprimées en type BigDecimal .

 BigDecimal test = new BigDecimal(0);
System.out.println(test);
test.add(new BigDecimal(30));
System.out.println(test);
test.add(new BigDecimal(45));
System.out.println(test);
 

Évidemment, je ne comprends pas bien les arithmétiques BigDecimal , voir la production ci-dessous.

 Test
0
0
0
 

Quelqu'un peut m'aider?

311voto

Vincent Ramdhanie Points 46265

Le BigDecimal est immuable, vous devez le faire:

 BigDecimal result = test.add(new BigDecimal(30));
System.out.println(result);
 

39voto

Ankur Goel Points 675

Cela ressemble à la documentation Java ici que add renvoie un nouveau BigDecimal:

 BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);
 

18voto

Maurice Perry Points 18154
BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);

10voto

nfechner Points 9402

C'est en fait plutôt facile. Faites juste ceci:

 BigDecimal test = new BigDecimal(0);
System.out.println(test);
test = test.add(new BigDecimal(30));
System.out.println(test);
test = test.add(new BigDecimal(45));
System.out.println(test);
 

Voir aussi: BigDecimal#add(java.math.BigDecimal)

10voto

ZZ Coder Points 36990

BigInteger est immuable, vous devez le faire,

   BigInteger sum = test.add(new BigInteger(30));  
  System.out.println(sum);
 

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