Java BigDecimal未执行添加操作

Java BigDecimal未执行添加操作,java,bigdecimal,Java,Bigdecimal,我有两个BigDecimal数字。我正在尝试添加它们。我的代码如下: BigDecimal bd1 = new BigDecimal(10); BigDecimal bd2 = new BigDecimal(10); bd1.add(bd2); 这里我期望bd1的值为20,但它一次又一次地显示为10。它没有被添加。如果我做错了什么,请帮助。BigDecimal值是不可变的,您需要将值分配给添加的结果: bd1 = bd1.add(bd2); 您需要将结果存储在新变量中: BigDecima

我有两个
BigDecimal
数字。我正在尝试添加它们。我的代码如下:

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

bd1.add(bd2);

这里我期望bd1的值为20,但它一次又一次地显示为10。它没有被添加。如果我做错了什么,请帮助。

BigDecimal
值是不可变的,您需要将值分配给
添加的结果:

bd1 = bd1.add(bd2);

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

BigDecimal bd3 = bd1.add(bd2);

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

阅读有助于你更好地理解

如果要在bd1中存储bd1和bd2之和,必须执行以下操作

bd1 = bd1.add(bd2);
试试这个:

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

莱默斯是对的。您需要将值指定给结果,如下所示:

bd1 = bd1.add(bd2);
如果您想了解有关immutable的详细信息,请参阅以下链接: