【发布时间】:2013-06-09 11:23:08
【问题描述】:
Jackson 似乎在我试图序列化为 JSON 的任何数据结构中将所有浮点数强制转换为双精度数。有什么办法可以避免这种行为?
Float f = 50.1f;
System.out.println(f); // 50.1
System.out.println(f.doubleValue()); // 50.099998474121094
System.out.println(new ObjectMapper().valueToTree(f)); // 50.099998474121094 -- how to prevent this?
使用 jackson-all-1.9.11.jar。
【问题讨论】:
-
顺便问一下,为什么是 Jackson 1.9.x?当前版本是 2.2.x...
-
您尝试过使用FloatSerializer 吗?
-
@fge 在庞大的代码库中工作。无法轻松升级。
-
@TheNewIdiot 谢谢。显然,这肯定会起作用,new ObjectMapper().writeValueAsString() 也一样。
-
你能用 BigDecimal 代替 Float 吗?
标签: java floating-point jackson