Java BigDecimal 计算环比:以 2022 年为例
假设有一个名为'amount'的'BigDecimal'类型的字段,表示某一年每个月的金额。
首先需要获取 2022 年每个月的金额和 2021 年对应月份的金额,然后计算环比。
代码示例:
// 构造一个Map,key为月份,value为对应月份的金额
Map<Integer, BigDecimal> amountMap = new HashMap<>();
// 假设amount为一个包含2021和2022年所有月份金额的列表
for (int i = 0; i < amount.size(); i++) {
BigDecimal amt = amount.get(i);
// 根据索引计算月份
int month = i % 12 + 1;
// 根据月份把金额存入Map中
amountMap.put(month, amt);
}
// 计算每个月的环比
for (int i = 1; i <= 12; i++) {
BigDecimal curMonthAmt = amountMap.get(i); // 当前月份的金额
// 计算上一个月的月份
int lastMonth = i == 1 ? 12 : i - 1;
BigDecimal lastMonthAmt = amountMap.get(lastMonth); // 上一个月份的金额
// 计算环比
BigDecimal mom = curMonthAmt.subtract(lastMonthAmt).divide(lastMonthAmt, 4, RoundingMode.HALF_UP);
System.out.println("2022年" + i + "月环比:" + mom);
}
原文地址: https://www.cveoy.top/t/topic/mQlL 著作权归作者所有。请勿转载和采集!