Java 8 流操作计算 VmiMaterialDocument 列表 TotalQuantity 总和(避免精度损失)
您可以使用 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 类型来保持精度,避免精度损失。
原文地址: https://www.cveoy.top/t/topic/lHCW 著作权归作者所有。请勿转载和采集!