数据库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;
}
运行结果图
实现方法比较传统,有更好的解决方法的小伙伴,欢迎留言讨论。