您可以使用 Java 8 的流操作来累计上述对象的 TotalQuantity 字段的合计,并避免精度损失。首先,您需要将 TotalQuantity 字段转换为 BigDecimal 类型,然后使用 reduce 方法对其进行累加操作。

下面是示例代码:

import java.math.BigDecimal;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<VmiMaterialDocument> vmiListGtZero = ...; // 假设这里是您的 VmiMaterialDocument 对象列表
        
        BigDecimal totalQuantity = vmiListGtZero.stream()
                .map(VmiMaterialDocument::getTotalQuantity)
                .map(BigDecimal::new)
                .reduce(BigDecimal.ZERO, BigDecimal::add);
        
        System.out.println('Total Quantity: ' + totalQuantity);
    }
}

在上面的代码中,我们首先使用 stream 方法将 VmiMaterialDocument 对象列表转换为流。然后,使用 map 方法将每个对象的 TotalQuantity 字段转换为 BigDecimal 类型。接下来,使用 reduce 方法将所有 BigDecimal 值进行累加操作,初始值为 BigDecimal.ZERO,累加操作使用 BigDecimal 的 add 方法。

最后,我们打印出合计值。请注意,这里使用了 BigDecimal 类型来保持精度,避免精度损失。

Java 8 流操作计算 VmiMaterialDocument 列表 TotalQuantity 总和(避免精度损失)

原文地址: https://www.cveoy.top/t/topic/lHCW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录