JSONArray.fromObject转换string为JSONArray丢失精度

发布时间:2020-03-04 16:24:36 作者:butcher36
来源:网络 阅读:850

最近项目遇到一个问题,列表显示金额数据是177506.35,但是后台处理之后,导出excel中,显示为177506.34,莫名其妙少了一分钱,查找原因,发现是

net.sf.json 中的一个bug,这个地方如果数字过大,转换处理float的时候会丢失精度;使用gson,解决问题:

原代码:
JSONArray jsonArray = JSONArray.fromObject(gridDataStr);//把String转换为json
List<Map> list = (List<Map>) JSONArray.toCollection(jsonArray,HashMap.class);

修改之后代码:
Gson gson1=new Gson();
List<Map> list= gson1.fromJson(gridDataStr, new TypeToken<List<Map>>() {}.getType());

经测试,修改之后,数据正常导出
推荐阅读:
  1. MySQL 字符串转double转换栈帧(可能丢失精度)
  2. 浮点数精度丢失问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jsonarray.fromobjec 丢失精度 转换string为jsonarray

上一篇:R语言关联分析之啤酒和尿布

下一篇:传输文件

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》