BigDecimal没有做添加操作

时间:2013-03-20 13:38:22

标签: java bigdecimal

我有2个BigDecimal个数字。我想添加它们。我的代码如下:

BigDecimal bd1 = new BigDecimal(10);
BigDecimal bd2 = new BigDecimal(10);

bd1.add(bd2);

这里我期待bd1 20的值,但一次又一次显示10.它没有被添加。如果我做错了,请帮忙。

5 个答案:

答案 0 :(得分:10)

BigDecimal值是不可变的,您需要将值赋给add的结果:

bd1 = bd1.add(bd2);

答案 1 :(得分:3)

BigDecimal是不可变的。每个操作都会返回一个包含操作结果的新实例。

阅读Java Doc about BigDecimal可以帮助您更好地理解。

如果你想在bd1中存储bd1和bd2的总和,你必须这样做

bd1 = bd1.add(bd2);

答案 2 :(得分:3)

Reimeus是对的。您需要将值分配给结果,如下所示:

bd1 = bd1.add(bd2);

如果您想了解有关不可变的详细信息,请参阅以下链接:

What is meant by immutable?

答案 3 :(得分:2)

试试这个:

BigDecimal bd1 = new BigDecimal(10);
BigDecimal bd2 = new BigDecimal(10);
bd1 = bd1.add(bd2);
System.out.println(bd1); /*Prints 20*/

答案 4 :(得分:1)

您需要将结果存储在一个新变量中:

BigDecimal bd3 = bd1.add(bd2);