最近项目遇到一个问题,列表显示金额数据是177506.35,但是后台处理之后,导出excel中,显示为177506.34,莫名其妙少了一分钱,查找原因,发现是
net.sf.json 中的一个bug,这个地方如果数字过大,转换处理float的时候会丢失精度;使用gson,解决问题: 原代码: JSONArray jsonArray = JSONArray.fromObject(gridDataStr);//把String转换为json List list = (List) JSONArray.toCollection(jsonArray,HashMap.class); 修改之后代码: Gson gson1=new Gson(); List list= gson1.fromJson(gridDataStr, new TypeToken>() {}.getType()); 经测试,修改之后,数据正常导出
上一篇:ASP.NET SQL查询结果直接到处Excel
下一篇:restframework 组件详解