168

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);

BigDecimal明らかに、私は算術をよく理解していません。後ろの出力を参照してください。

Test
0
0
0

誰でも私を助けることができますか?

4

12 に答える 12

4
//you can do in this way...as BigDecimal is immutable so cant set values except in constructor

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

result would be 30
于 2012-01-04T15:08:37.213 に答える
2

次のようにすることもできます。

BigDecimal A = new BigDecimal("10000000000");
BigDecimal B = new BigDecimal("20000000000");
BigDecimal C = new BigDecimal("30000000000");
BigDecimal resultSum = (A).add(B).add(C);
System.out.println("A+B+C= " + resultSum);

版画:

A+B+C= 60000000000

于 2017-12-06T05:08:41.287 に答える
0
BigDecimal demo = new BigDecimal(15);

これは、入力した ie (15) を内部的に保存するため不変 final private final BigInteger intVal; であり、文字列作成時に同じ概念を使用して、すべての入力が最終的に保存される ため、実装されprivate final char value[];たバグはありません。

于 2017-04-18T13:49:36.917 に答える