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

Numbers fetched after digit is 6 but i want all numbers

我正在尝试使用放心的方法获取浮点数,但它只获取小数点后的 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 配置设置为 return Double 类型的数字。
  • 对 "map.lat" 和 "map.long".

    使用 JsonPath getDouble() 方法
    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") 到 return BigDecimal 对象。这将为您提供最佳精度,但可能超出您的需要。

希望这对你有用!