使用Jackson library for Java输出浮点值时出现问题

使用Jackson library for Java输出浮点值时出现问题,java,json,floating-point,jackson,Java,Json,Floating Point,Jackson,使用Jackson将pojo转换为字符串时,我发现我的浮点值被截断5852402.63111111在打印字符串时变为5852402.6。此外,当不能将某些值放入8位数字的值中时,这些值后面还带有E7或一些数字。是否必须对打印机或映射器执行某些操作才能将其设置为不截断我的值。我一直在查看文档,但没能找到这个。谢谢 目前,我转换为字符串的方法是: ObjectMapper mapper = new ObjectMapper(); mapper.enable(Serialization

使用Jackson将pojo转换为字符串时,我发现我的浮点值被截断5852402.63111111在打印字符串时变为5852402.6。此外,当不能将某些值放入8位数字的值中时,这些值后面还带有E7或一些数字。是否必须对打印机或映射器执行某些操作才能将其设置为不截断我的值。我一直在查看文档,但没能找到这个。谢谢

目前,我转换为字符串的方法是:

    ObjectMapper mapper = new ObjectMapper();
    mapper.enable(SerializationFeature.INDENT_OUTPUT);
    DefaultPrettyPrinter printer = new DefaultPrettyPrinter();
    mapper.writer(printer).writeValueAsString(myObject);

您对
浮点值的期望精度是多少?(提示:如果您依赖的是7以上的值,这可能是个坏主意……)并非所有实际值都可以放入32位浮点。尤其是这么大的一个。只需执行
System.out.println(5852402.63111f)