BdRfpHeaderContentDTO bdRfpSumMoneyList1 = this.baseMapper.selectBdRfpSumMoney(dto,dateV); BdRfpHeaderContentDTO bdRfpSumMoneyList2 = this.baseMapper.selectBdRfpSumMoney(dto,dateV1);要求显示第一个对象值,同时计算出同比增长率,而且这两个值很有可能有一个两个都为空,你会怎么用Java实现
时间: 2023-04-02 11:04:55 浏览: 42
我可以回答这个问题。首先,我们需要判断两个对象是否为空,如果都为空,则同比增长率为;如果只有一个为空,则同比增长率为100%。如果两个对象都不为空,则可以计算同比增长率。具体实现可以使用Java中的BigDecimal类来进行精确计算。代码示例如下:
BdRfpHeaderContentDTO bdRfpSumMoneyList1 = this.baseMapper.selectBdRfpSumMoney(dto, dateV);
BdRfpHeaderContentDTO bdRfpSumMoneyList2 = this.baseMapper.selectBdRfpSumMoney(dto, dateV1);
if (bdRfpSumMoneyList1 == null && bdRfpSumMoneyList2 == null) {
System.out.println("两个对象都为空,同比增长率为");
} else if (bdRfpSumMoneyList1 == null || bdRfpSumMoneyList2 == null) {
System.out.println("一个对象为空,同比增长率为100%");
} else {
BigDecimal sumMoney1 = bdRfpSumMoneyList1.getSumMoney();
BigDecimal sumMoney2 = bdRfpSumMoneyList2.getSumMoney();
BigDecimal growthRate = sumMoney2.subtract(sumMoney1).divide(sumMoney1, 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
System.out.println("第一个对象的值为:" + sumMoney1);
System.out.println("同比增长率为:" + growthRate + "%");
}