Java BigDecimal 集合计算环比:以 2022 年数据为例
首先,需要创建一个包含 2021 和 2022 年每个月的 BigDecimal 类型集合,可以使用如下代码:
List<BigDecimal> values = new ArrayList<>();
values.add(new BigDecimal('100')); //2021年1月
values.add(new BigDecimal('120')); //2021年2月
values.add(new BigDecimal('150')); //2021年3月
values.add(new BigDecimal('130')); //2021年4月
values.add(new BigDecimal('140')); //2021年5月
values.add(new BigDecimal('160')); //2021年6月
values.add(new BigDecimal('180')); //2021年7月
values.add(new BigDecimal('200')); //2021年8月
values.add(new BigDecimal('190')); //2021年9月
values.add(new BigDecimal('180')); //2021年10月
values.add(new BigDecimal('170')); //2021年11月
values.add(new BigDecimal('200')); //2021年12月
values.add(new BigDecimal('220')); //2022年1月
values.add(new BigDecimal('240')); //2022年2月
values.add(new BigDecimal('260')); //2022年3月
values.add(new BigDecimal('280')); //2022年4月
values.add(new BigDecimal('300')); //2022年5月
values.add(new BigDecimal('320')); //2022年6月
values.add(new BigDecimal('340')); //2022年7月
values.add(new BigDecimal('360')); //2022年8月
values.add(new BigDecimal('380')); //2022年9月
values.add(new BigDecimal('400')); //2022年10月
values.add(new BigDecimal('420')); //2022年11月
values.add(new BigDecimal('440')); //2022年12月
然后,可以使用如下代码计算出每个月的环比:
//从2022年1月开始,计算每个月的环比
for(int i=1; i<=12; i++){
BigDecimal currentMonthValue = values.get(12+i); //当前月的值
BigDecimal lastMonthValue = values.get(12+i-1); //上个月的值
BigDecimal monthRatio = currentMonthValue.subtract(lastMonthValue).divide(lastMonthValue, 4, RoundingMode.HALF_UP); //计算环比
System.out.println("2022年" + i + "月环比:" + monthRatio);
}
最后,运行上述代码即可输出 2022 年 1 到 12 月每个月的环比。其中,使用 BigDecimal 类型进行计算可以保证计算精度。在计算环比时,需要使用 BigDecimal 的减法和除法方法,并指定精确度和舍入方式。
原文地址: https://www.cveoy.top/t/topic/mRBP 著作权归作者所有。请勿转载和采集!