我正在尝试使用放心方法获取浮点数,但它只在小数点后获取 6 位数字,但我有 10 多位。
我尝试使用下面提供的代码获取它,该代码显示getFLoat是Rest Assured 库中的方法
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
在 Java 中,浮点数最多只能存储小数后 6-7 位数字的值。如果您需要更多,您应该能够使用双精度,它允许 15-16 位数字。
话虽如此,看起来您的代码可能需要进一步更改才能根据需要工作。我能够通过更改几件事来让代码片段在本地运行:
- 将 JsonPath 配置设置为返回双精度类型的数字。
-
使用 JsonPathgetDouble((方法表示 "map.lat" 和 "map.long"。
JsonPath js = ReusableMethods.rawToJson(res); JsonPath.config = new JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE); double latitude = js.getDouble("map.lat"); double longitude = js.getDouble("map.long");
完成此操作后,我能够在您提供的十进制值上获得 14 位精度。
如果需要更高的精度,可以将配置值设置为JsonPathConfig.NumberReturnType.BIG_DECIMAL并调用js.get("map.lat"(以返回 BigDecimal 对象。这将为您提供最佳精度,但可能超出您的需求范围。
希望这对您有用!