Jsonlib读取double会自动变成float

铂金小虫 发布于 2014/10/22 20:14
阅读 157
收藏 0


String json = "{\"lat\":20141021.112018}";
JSONObject jsonObj = JSONObject.fromObject(json);
System.out.println(jsonObj.getDouble("lat"));

我想通过json字符串获取里面的元素。但是发现这样获取后输出为2.0141022E7(跟double转成float一样)。然后看了下源码,有点多,只看到float会自动转成double,没看到double会转成float。

不清楚是jsonlib是如何区分float还是double,照理说默认应该是double。



加载中
0
一只小桃子
一只小桃子
搞成字符串,自己手动new BigDecimal,这样就不损失啥了
铂金小虫
铂金小虫
知道如何解决,因为是别人的接口返回的。现在找到原因了,是因为源码里用了common-lang的NumberUtils.createNumber(String s),该方法会依次尝试转换float,double。所以会返回float。
返回顶部
顶部