Java BigDecimal 计算环比 - 以 2022 年为例
假设有两个 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,并输出到控制台。最后就可以得到所有月份的环比值了。
原文地址: https://www.cveoy.top/t/topic/mRyZ 著作权归作者所有。请勿转载和采集!