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