gpt4 book ai didi

Java 将具有原始浮点字段的对象序列化为 Json

转载 作者:行者123 更新时间:2023-12-02 11:07:32 25 4
gpt4 key购买 nike

我有一个如下所示的 API:

@GetMapping("/floattest")
@ResponseBody
public ApiResult getFloatTest() {
ApiResult result = new ApiResult();
ApiObject test = new ApiObject(81684436f, 74258578f, 7425858f);
result.setData(test);
return result;
}

public class BalanceDetail {
private float a;
private float b;
private float c;
}

API调用返回:

{
"data": {
"a": 81684432,
"b": 74258576,
"c": 7425858
}
}

我希望能够逐步解释这些值如何在没有任何警告的情况下转换为与客户端完全不同的值。

最佳答案

这不是 jackson 问题。

如果你运行这个:

public class Main {
public static void main(String[] args) {
System.out.println(81684436f);
}
}

您将获得8.1684432E7

因此,这种行为背后的原因是浮点的工作原理。您可以阅读更多内容https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3

关于Java 将具有原始浮点字段的对象序列化为 Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50854632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com