1. 程式人生 > 其它 >解決使用lambda表示式BigDecimal運算子不能被識別的問題

解決使用lambda表示式BigDecimal運算子不能被識別的問題

基於下面連結提到的一個問題,在使用lambda表示式對BigDecimal型別的資料進行操作的時候,會遇到操作運算子BigDecimal::add編譯無法識別的問題,具體原因詳見連結;

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

解決辦法:

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

另,在實際處理資料的時候避免精度丟失,應儘量使用BigDecimal型別來存放資料處理結果

內容原創,轉載請註明出處