2013-03-20 60 views
4

我有2 BigDecimal數字。我正在嘗試添加它們。我的代碼如下:BigDecimal不做添加操作

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

bd1.add(bd2); 

在這裏,我卻又期待的BD1 20的值,然後再次它的顯示10.這不是添加。如果我做錯了什麼,請幫忙。

回答

3

Reimeus是正確的。您需要將值分配給的結果是這樣的:

bd1 = bd1.add(bd2); 

如果您想了解一成不變的,你可以參考以下鏈接的詳細信息:

What is meant by immutable?

10

BigDecimal值是不可改變的,您需要將值分配給的add結果:

bd1 = bd1.add(bd2); 
1

您需要將結果存儲在一個新的變量:

BigDecimal bd3 = bd1.add(bd2); 
3

BigDecimal爲不可變的。每個操作都會返回一個包含操作結果的新實例。

閱讀Java Doc about BigDecimal幫助你更好地理解。

如果你想存儲在BD1 BD1和BD2的總和,你所要做的

bd1 = bd1.add(bd2); 
2

試試這個:

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