BigDecimal累加求和数值为0问题:

BigDecimal累加求和数值为0问题:

双层循环中需要对bigdecimal类型数值进行累加要注意:累加之后要赋给新值(totalAmount)

for(int i = 0; i < countStatementList.size(); i++){
    BigDecimal amount = new BigDecimal(countStatementList.get(i).getAmount());
            BigDecimal totalAmount = new BigDecimal(0);
            totalAmount = totalAmount.add(amount);
    
    for(int j = i + 1; j < countStatementList.size(); j++){
        totalAmount = totalAmount.add(new BigDecimal(countStatementList.get(j).getAmount()));
    }
}
### 回答1: 这是一个Java代码的片段,它使用了Java 8中的Stream API和Collectors类的reducing方法来计算HotmetalChargeltemEntity对象列表中的onSteel属性的乘积,并使用BigDecimal类型进行精确计算。具体实现可以参考以下代码示例: ```java List<HotmetalChargeltemEntity> itemList = // 获得HotmetalChargeltemEntity对象列表 BigDecimal product = itemList.stream() .collect(Collectors.reducing(BigDecimal.ONE, HotmetalChargeltemEntity::getOnSteel, BigDecimal::multiply)); ``` 这段代码将列表中每个元素的onSteel属性的值取出来,并对它们进行累乘操作,最终得到一个BigDecimal类型的乘积值。其中,BigDecimal.ONE表示初始值为1,HotmetalChargeltemEntity::getOnSteel表示获取每个元素的onSteel属性值的函数,BigDecimal::multiply表示对两个BigDecimal类型的值进行乘法计算的函数。 ### 回答2: collectors,reducing(BigDecimal,ZBR0,HotmetalChargeltemEntity::getonSteel, BigDecimal::multiply))是一个用于数据收集和计算的方法。 在这个方法中,collectors是一个收集器对象,用于对数据进行集合操作。reducing是collectors类中的一个静态方法,用于对数据进行逐项计算。 在这个方法中,我们需要传入3个参数: 1. ZBR0:这是一个BigDecimal类型的参数,代表一个初始值,用于计算结果的初始值。 2. HotmetalChargeltemEntity::getonSteel:这是一个Lambda表达式,用于指定从数据中获取需要计算的值。 3. BigDecimal::multiply:这是一个方法引用,用于指定对获取的值进行计算的操作。 通过这个方法,我们可以对一组数据进行遍历,并对其中的每一个值进行计算,并将结果存储在一个BigDecimal类型的变量中。每一次计算都会取得上一次计算的结果作为初始值,然后将获取的值与初始值进行计算,并将结果作为新的初始值,直到遍历完所有数据。 这样,我们就可以得到一个最终的结果,这个结果是通过对所有数据进行计算并累加得到的。在这个方法中,我们使用了BigDecimal类型,这是因为BigDecimal可以处理大数计算,保证精确性。 总之,collectors,reducing(BigDecimal,ZBR0,HotmetalChargeltemEntity::getonSteel, BigDecimal::multiply))是一个用于数据收集和计算的方法,通过对一组数据进行计算,并将计算结果累加得到一个最终的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值