字符串转百分数,并求平均数 BigDecimal 、DecimalFormat

 /**
     * 求参评率 和 解决率 的平均数 ,都是百分号的字符串
     * @return
     */
    public List<RptRobotAnswerStatsNew> dealRptRobotAnswerStatsNew(String startDate, String endDate,
                                                               String area, String formats, String companyId){
        List<RptRobotAnswerStatsNew> list = rptRobotAnswerStatsService.getRptRobotAnswerList(companyId, area, formats, startDate, endDate);
        RptRobotAnswerStatsNew total = new RptRobotAnswerStatsNew();
        total.setRobotName("总计"); //汇总数据
       
        BigDecimal canPanLv = new BigDecimal(0.00);
        BigDecimal solvedLv = new BigDecimal(0.00);
        DecimalFormat df = new DecimalFormat("0.00%");
        int i=0;
        for(RptRobotAnswerStatsNew answerStats : list) {
            i++;
            try {
                RptRobotSatisfactionStatsNew rrssn = robotSatisfactionService.getRobotSatisfactionNew(startDate, endDate, null, answerStats.getRobotId(),companyId);
              
                log.info("rrssnStr-->"+ JSON.toJSONString(rrssn));      
                /**参评率**/
                answerStats.setCanpinglv(rrssn.getCanpinglv());        
                /**已解决率**/
                answerStats.setSolvedLv(rrssn.getSolvedLv());      
                String canPingLvStr=answerStats.getCanpinglv().replace("%","");
                canPingLvStr=canPingLvStr.replace("%","");
                String solvedLvStr=answerStats.getCanpinglv().replace("%","");
                solvedLvStr = solvedLvStr.replace("%","");
                Float cplf = Float.valueOf(canPingLvStr) / 100;
                Float slf = Float.valueOf(solvedLvStr) / 100;


                BigDecimal cpl = new BigDecimal(cplf);
                BigDecimal sl = new BigDecimal(slf);
                canPanLv = canPanLv.add(cpl);
                solvedLv = solvedLv.add(sl);
            } catch (Exception e) {
                e.printStackTrace();
                log.info("dealRptRobotAnswerStatsNew Error",e);
            }
        }
       //求完平均数最后在转换成百分数
        total.setCanpinglv(df.format(canPanLv.divide(new BigDecimal(i),4, BigDecimal.ROUND_HALF_UP)));
        total.setSolvedLv(df.format(solvedLv.divide(new BigDecimal(i),4, BigDecimal.ROUND_HALF_UP)));
        list.add(total);
        return  list;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值