2

Long 转换中的错误精度

在android中,我们可以看到附图,我从服务器收到的json是“id=-705156352446547 2446 ”但是代码jsonObject.getLong("id")给出了-705156352446547 2512

我可以看到每次getLong转换在最后 4 位中都有不精确的结果(或丢失精度?)。有什么我错过的吗?

我的设置:java 1.6.0_41、Android 4.1.2、IntelliJ 12 IDE。

4

3 回答 3

5

Long.parseLong(jsonObject.getString("id"))给出精确的结果。

于 2013-05-04T08:35:03.623 回答
1

这表明 getLong() 的代码正在做一些可疑的转换,可能是使用双精度。

根据此问题报告,情况似乎就是这样。看起来已经在以后的版本中修复了。

于 2013-05-04T08:28:37.097 回答
0

我最近也遇到了这个问题。通过使用代码解决了它:

Long.valueOf(jarray.getString((index)))
于 2016-09-29T14:10:27.573 回答