假设有两个 BigDecimal 类型的字段,分别表示 2021 年和 2022 年的数据:

BigDecimal data2021 = new BigDecimal('100.0');
BigDecimal data2022 = new BigDecimal('120.0');

可以使用以下代码计算 2022 年 1 到 12 月每个月的环比值:

for (int i = 1; i <= 12; i++) {
    BigDecimal dataThisMonth = data2022;
    if (i > 1) {
        // 计算上个月的数据
        int lastMonth = i - 1;
        BigDecimal dataLastMonth = new BigDecimal('0.0');
        if (lastMonth == 1) {
            // 上个月是 1 月,需要使用 2021 年的数据
            dataLastMonth = data2021;
        } else {
            // 上个月不是 1 月,使用 2022 年的数据
            dataLastMonth = dataThisMonth.subtract(new BigDecimal('10.0'));
        }
        // 计算环比
        BigDecimal mom = dataThisMonth.subtract(dataLastMonth).divide(dataLastMonth, 2, RoundingMode.HALF_UP);
        System.out.println('2022 年' + i + '月环比值:' + mom);
    } else {
        System.out.println('2022 年 1 月环比值:0.0');
    }
}

上述代码中,首先使用一个 for 循环遍历 1 到 12 月的数据,对于每个月,先将 dataThisMonth 设置为 2022 年的数据,然后判断是否是 1 月,如果是 1 月,则直接输出环比值为 0.0;如果不是 1 月,则计算上个月的数据 dataLastMonth,如果上个月是 1 月,使用 2021 年的数据,否则使用 dataThisMonth 减去 10 作为上个月的数据。然后使用 BigDecimal 的方法计算当前月的环比值 mom,并输出到控制台。最后就可以得到所有月份的环比值了。

Java BigDecimal 计算环比 - 以 2022 年为例

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

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