代码如下:
import org.apache.commons.collections4.CollectionUtils;
import java.math.BigDecimal;
import java.util.*;
public class BigDecimalUtil {
/**
* 取 BigDecimal 平均值
* @param bigDecimals
* @param scale
* @param roundingMode
* @return
*/
public static BigDecimal average(List<BigDecimal> bigDecimals, Integer scale, int roundingMode) {
if(CollectionUtils.isEmpty(bigDecimals)) return BigDecimal.ZERO;
BigDecimal sum = bigDecimals.stream()
.map(x-> Optional.ofNullable(x).orElse(BigDecimal.ZERO))
.reduce(BigDecimal.ZERO, BigDecimal::add);
long count = bigDecimals.stream().count();
return sum.divide(new BigDecimal(count), scale, roundingMode);
}
}