在使用BigDecimal进行计算时
//定义一个BigDecimal变量
BigDecimal a = new BigDecimal(0);
for(AAA aaa : AAAs){
//进行一些常规对象赋值操作
//对对象某个数据进行统计计算
if(null != aaa.getBBB()){
a.add(aaa.getBBB());
}
}
//使用
AAA c = new AAA();
c.setBBB(a);
在我以为我成功的时候,发现a输出的竟然是0!!!
解决方法
//定义一个BigDecimal变量
BigDecimal a = new BigDecimal(0);
for(AAA aaa : AAAs){
//进行一些常规对象赋值操作
//对对象某个数据进行统计计算
if(null != aaa.getBBB()){
//在此处使用变量进行接收
BigDecimal newA = new BigDecimal;
newA = a.add(aaa.getBBB());
}
}
//使用
AAA c = new AAA();
c.setBBB(newA);
其实,BigDecimal在计算的时候,调用了方法,返回的是一个新的BigDecimal值,计算的变量的值并不会发生改变,所有就需要对定义的变量进行赋值才行。