【无标题】sum函数统计java返回值为1.0如何处理

 数据库sql查询结果

java接口返回结果     用sum函数统计f_stock 库存 ,实体类是String类型,java后台返回的是 BigDecimal类型,所以用DECIMAL(12,3)函数规定小数后保留三位小数(四舍五入)

 

sum统计为整数时前台输出为   1  而不是1.0  如何解决?

分析:

1.可以用函数DECIMAL(12,0),保留整数,如果需要保留小数时,不能满足需求

2.在java用代码实现

  @Override
    public Map sampleStatisticsInfo(Map<String,Object> params){
       Map resultMap= new HashMap<>();
       QueryWrapper<Map> query=new QueryWrapper<>();
       //引用sql查询出统计的结果值
       List<Map>  mapList=this.baseMapper.sampleStatisticsInfo(query);
       //获取sum统计的f_stock结果值(类型为bigdicimal)
        Object libraryCount= mapList.get(0).get("libraryCount");
        //转成double类型
        Double mainWastage = Double.parseDouble(String.valueOf(libraryCount));
        //取整数值减去浮点类型为o说明没有小数位
        if(mainWastage.intValue()-mainWastage==0){//判断是否符合取整条件
            libraryCount=String.valueOf(mainWastage.intValue());
            System.out.println("1.0可以转换整数"+libraryCount);
        }else {//否   直接保存结果值
            libraryCount = String.valueOf(mainWastage);
        }
        //结果值重新赋值到集合中
        mapList.get(0).put("libraryCount",libraryCount);
        resultMap.put("list",mapList);
        System.out.println(mapList);
        return resultMap;
    }

运行结果图

实现方法比较传统,有更好的解决方法的小伙伴,欢迎留言讨论。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值