2011-02-26 399 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