错误写法:
//订单金额
BigDecimal orderAmount = new BigDecimal(0);
for (Object o : dayPriceDtos) {
JSONObject obj = JSONObject.parseObject(o.toString());
//每日房价累加
orderAmount.add(obj.getBigDecimal("roomPrice"));
}
问题:这样累加会导致orderAmount的值为0,累计无效
正确写法:
//订单金额
BigDecimal orderAmount = new BigDecimal(0);
for (Object o : dayPriceDtos) {
JSONObject obj = JSONObject.parseObject(o.toString());
//每日房价累加
orderAmount = orderAmount.add(obj.getBigDecimal("roomPrice"));
}
原理:据说是因为 bigDecimal作为参数传入一个方法中,比如add(),累加之后返回的是一个新的对象,跟方法外部定义的BigDecimal对象不是同一个。重新赋值,覆盖掉就好了。