假设有一个名为'amount'的'BigDecimal'类型的字段,代表某个指标的数值。

我们可以先查询出 2022 年 1 到 12 月每个月的数值和上一个月的数值,然后计算环比。具体实现如下:

// 获取 2022 年 1 月到 12 月每个月的数值和上一个月的数值
List<BigDecimal[]> data = new ArrayList<>();
for (int i = 1; i <= 12; i++) {
    BigDecimal[] monthData = new BigDecimal[2];
    monthData[0] = getAmount(2022, i); // 当前月数值
    monthData[1] = getAmount(2022, i-1); // 上一个月数值
    data.add(monthData);
}

// 计算每个月的环比
for (int i = 0; i < data.size(); i++) {
    BigDecimal[] monthData = data.get(i);
    BigDecimal currentMonthAmount = monthData[0];
    BigDecimal lastMonthAmount = monthData[1];
    if (lastMonthAmount != null && lastMonthAmount.compareTo(BigDecimal.ZERO) != 0) {
        BigDecimal ratio = currentMonthAmount.subtract(lastMonthAmount).divide(lastMonthAmount, 2, RoundingMode.HALF_UP);
        System.out.println("2022年" + (i+1) + "月环比:" + ratio);
    } else {
        System.out.println("2022年" + (i+1) + "月无法计算环比");
    }
}

其中getAmount(year, month)方法用于查询指定年月的数值,可以根据具体情况进行实现。计算环比时,需要注意分母不能为 0。

BigDecimal 类型字段环比计算:2022 年示例

原文地址: https://www.cveoy.top/t/topic/mQby 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录