List<BigDecimal> priceList = new ArrayList<>(); 获取平均值
时间: 2024-01-01 07:54:55 浏览: 91
可以使用 BigDecimal 进行精确计算,具体方法如下:
1. 定义 BigDecimal 类型的 sum 变量,并初始化为 0。
2. 遍历 priceList 中的每个元素,将其加入到 sum 变量中。
3. 使用 BigDecimal 类的 divide 方法,将 sum 变量除以 priceList 的大小(即元素个数),得到平均值。
示例代码如下:
```
List<BigDecimal> priceList = new ArrayList<>();
// 将元素添加到 priceList 中
BigDecimal sum = new BigDecimal(0);
for (BigDecimal price : priceList) {
sum = sum.add(price); // 将元素加入到 sum 中
}
BigDecimal average = sum.divide(new BigDecimal(priceList.size()), 2, RoundingMode.HALF_UP);
// 将 sum 除以列表大小,得到平均值,小数位数为 2,舍入方式为四舍五入
System.out.println("平均值为:" + average);
```
相关问题
List<BigDecimal> priceList = new ArrayList<>(); 使用stream 获取平均值,最大值,最小值
得到以下代码:
```
List<BigDecimal> priceList = new ArrayList<>();
priceList.add(new BigDecimal("10.5"));
priceList.add(new BigDecimal("20.3"));
priceList.add(new BigDecimal("5.2"));
priceList.add(new BigDecimal("16.7"));
BigDecimal average = priceList.stream().mapToDouble(BigDecimal::doubleValue).average().getAsDouble();
BigDecimal max = priceList.stream().max(BigDecimal::compareTo).get();
BigDecimal min = priceList.stream().min(BigDecimal::compareTo).get();
System.out.println("Average: " + average);
System.out.println("Max: " + max);
System.out.println("Min: " + min);
```
输出结果为:
```
Average: 13.175
Max: 20.3
Min: 5.2
```
List<BigDecimal> priceList = new ArrayList<>(); 使用stream 获取平均值 保留2位小数,最大值,最小值
答:您好,可使用以下代码:
平均值保留2位小数:
BigDecimal average = priceList.stream().mapToDouble(BigDecimal::doubleValue).average().orElse(0);
String formattedAverage = String.format("%.2f", average);
最大值:
BigDecimal max = priceList.stream().max(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
最小值:
BigDecimal min = priceList.stream().min(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
以上代码可以获取到List<BigDecimal> priceList中元素的平均值、最大值、最小值,并且平均值保留2位小数。
阅读全文