org.json.JSONObject.getLong给出了不精确的结果
在android中,我们可以看到附图,我从服务器收到的json是“id = -705156352446547 2446 ”,但代码jsonObject.getLong("id")
给出-705156352446547 2512 。
我可以看到每个getLong
转换在最后4位数中有不精确的结果(或丢失精度?)。 我错过了什么吗?
我的设置:java 1.6.0_41,Android 4.1.2,IntelliJ 12 IDE。
Long.parseLong(jsonObject.getString("id"))
给出精确的结果。
这表明getLong()的代码正在进行一些可疑的转换,可能是使用double。
基于此问题报告,情况就是如此 。 看起来已在更高版本中修复。
我最近也遇到过这个问题..通过使用代码解决了这个问题:
Long.valueOf(jarray.getString((index)))