2011-02-26 53 views
5

Hallo, 我有一個BigDecimal temp變量,我希望它可以在函數中重用。如果值大於零,是否有辦法將此變量重置爲零?如何將BigDecimal重置爲零

THanks @!

+2

你會通過閱讀[爲BigDecimal的文檔]瞭解這個問題的答案很快(http://download.oracle.com/javase/6/docs/api/ java/math/BigDecimal.html)(*第一個單詞*是「不可變的」)。關於Java的最好的事情之一是它的巨大和[徹底記錄](http://download.oracle.com/javase/6/docs/api/)標準庫。 – rlibby 2011-02-26 05:08:53

回答

5

BigDecimal是不可變的,並且實例不能被修改。但是,你可以這樣做:

public void myMethod(BigDecimal b) { 
    BigDecimal zero = BigDecimal.ZERO; 
    if (b.compareTo(zero) > 0) 
     b = zero; 
    // Do stuff with b here 
} 
+1

更好地使用'BigDecimal.ZERO'。 – 2011-02-26 06:15:29

+0

謝謝。改變。 :) – 2011-02-26 18:59:26

8

您無法更改該值。 BigDecimals是不可變的。你需要創建一個新的。

+0

最好使用'BigDecimal.ZERO'而不是創建一個新的。 – 2011-02-26 06:15:49

+0

@Stephen,沒錯,但我在說「創建一個新的」,而不是在函數中重用它。 – jzd 2011-02-26 14:01:26