BigDecimal的补充

问题

我想用一些表示在BigDecimaltype中的货币值做一些简单的总和。

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

谁能帮我吗?


#1 热门回答(228 赞)

TheBigDecimal是不可变的,所以你需要这样做:

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

#2 热门回答(28 赞)

看起来像Java docshere这样添加返回一个新的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);

#3 热门回答(15 赞)

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