采坑记录
- Bigdecimal类型的方法不改变本身,而是返回新的值
所以,要用一个对象接收方法返回值。例如:Bigdecimal a = Bigdecimal.ZERO; a.add(Bigdecimal.ONE)后a还是0,a=a.add(Bigdecimal.ONE)后a才是1;
同理,如果把a传给一个方法,操作a的值,那么最后一定要返回a才有效。比如有一个方法 calculate(Bigdecimal a){a=a.add(Bigdecimal.ONE)},直接调用calculate(a),a的值不会变的,要把方法改成calculate(Bigdecimal a){return a.add(Bigdecimal.ONE)},然后a=a=calculate(a)才会改变a的值。