基于下面链接提到的一个问题,在使用lambda表达式对BigDecimal类型的数据进行操作的时候,会遇到操作运算符BigDecimal::add编译无法识别的问题,具体原因详见链接;
解决办法:
BigDecimal sums = testFoods.stream().map(f -> new BigDecimal(f.getP())).collect(Collectors.toList()).stream().reduce(BigDecimal.ZERO, BigDecimal::add);
另,在实际处理数据的时候避免精度丢失,应尽量使用BigDecimal类型来存放数据处理结果
内容原创,转载请注明出处