解决使用lambda表达式BigDecimal运算不能被识别的问题

基于下面链接提到的一个问题,在使用lambda表达式对BigDecimal类型的数据进行操作的时候,会遇到操作运算符并被识别的问题,具体原因详见链接;

https://*.com/questions/53983334/why-it-works-bigdecimal-sum-with-reduce-and-bigdecimaladd

解决办法:

BigDecimal sums = testFoods.stream().map(f -> BigDecimal.valueOf(parseNumber(f.getProtein()))).collect(Collectors.toList()).stream().reduce(BigDecimal.ZERO, BigDecimal::add);

另,在实际处理数据的时候避免精度丢失,应尽量使用BigDecimal类型来存放数据处理结果解决使用lambda表达式BigDecimal运算不能被识别的问题

内容原创,转载请注明出处

上一篇:BigDecimal.ROUND_UP保留0为小数,向上取整


下一篇:BigInteger 和 BigDecimal