数字后获取的数字是 6,但我想要所有数字



我正在尝试使用放心方法获取浮点数,但它只在小数点后获取 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 对象。这将为您提供最佳精度,但可能超出您的需求范围。

希望这对您有用!

相关内容

  • 没有找到相关文章

最新更新