Java中JSON数据的7位精度Lat和Lon坐标
我需要使用lat/lon坐标,如下所示:12.4840299,41.8506791;精度为7位,适用于室内环境 但当我从JSON中提取它时,我用这种方式生成了一个Double:Java中JSON数据的7位精度Lat和Lon坐标,java,json,double,latitude-longitude,precision,Java,Json,Double,Latitude Longitude,Precision,我需要使用lat/lon坐标,如下所示:12.4840299,41.8506791;精度为7位,适用于室内环境 但当我从JSON中提取它时,我用这种方式生成了一个Double: lat = Double.parseDouble(tmp.getString(0)); lon = Double.parseDouble(tmp.getString(1)); 我得到了这个结果(tmp是一个包含lat/lon的JSONObject): lat=12.484046 lon=41.85063; 精度仅为5/
lat = Double.parseDouble(tmp.getString(0));
lon = Double.parseDouble(tmp.getString(1));
我得到了这个结果(tmp是一个包含lat/lon的JSONObject):
lat=12.484046 lon=41.85063;
精度仅为5/6位
如何以最大的精度从JSON中提取所有完整的lat/lon
先谢谢你
已解决:是我用来截断值的库。Um,12.484046有8位精度,41.85063有7位精度。。。然而,我怀疑这只是你如何看待结果的问题。我会在这里使用
BigDecimal
,或者将所有值乘以1e7,从String
到double
的转换对于你提供的值来说效果很好。问题一定在别处。特别是,System.out.println(Double.parseDouble(“12.4840299”)
为我打印出12.4840299
。(请记住,NSLog和调试器将显示“舍入”浮点值——基本上,当数字在较短的一个ULP范围内时,舍入,并且在任何情况下很少显示超过6个小数位数。实际数字是正确的。)