ListVmiMaterialDocument vmiListGtZero;使用java 8 累计上述对象TotalQuantity字段String类型的合计避免精度损失
您可以使用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类型来保持精度,避免精度损失。
原文地址: http://www.cveoy.top/t/topic/i8CO 著作权归作者所有。请勿转载和采集!