我试着用放心的方法来获取浮点数,但是它在十进制之后只取6位数,但是我有超过10位。
我尝试使用下面提供的代码来获取它,这表明getFLoat是从Rest保证库中获取的方法。
JsonPath js= ReusableMethods.rawToJson(res);
float latitude = js.getFloat("map.lat");
float longitude = js.getFloat("map.long");这是返回浮子的值,如纬度= -80.375786和经度= 157.40535,其中响应为"lat":-80.375787552675078和"long":157.40535607561472。
发布于 2019-10-18 16:31:09
在Java中,浮点数只能在小数点之后存储高达6-7位的值.如果您需要更多,您应该能够使用双,这允许15-16位数。
尽管如此,看起来您的代码可能需要进一步的更改才能根据需要工作。通过更改一些内容,我能够让代码片段在本地运行:
Double.
JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE);JsonPath js = ReusableMethods.rawToJson(res);JsonPath.config =新的JsonPath北纬= js.getDouble("map.lat");双经度= js.getDouble("map.long");
完成此操作后,我能够获得您提供的十进制值的14位精度。
如果需要更高的精度,可以将配置值设置为JsonPathConfig.NumberReturnType.BIG_DECIMAL,并调用js.get("map.lat")返回BigDecimal对象。这会给你最好的精度,但可能超出你的需要范围。
希望这对你有用!
https://stackoverflow.com/questions/58454701
复制相似问题