这应该是一个简单的问题,但我在互联网上找不到任何东西。这是JSON字符串
{"ratio":2.714,"daily":161.0,"userId":811032853,"topic":"#GOP2012","gender":"Unknow"}
然后当我做mapper.readValue(*theString*,*theClass.class*)
时,小数点后的所有数字都会丢失。对于上面的例子,我只得到2.0的比值。
我使用的杰克逊的版本是1.9.9,这应该是最新的版本。
这种情况也发生在其他人身上吗?谢谢大家:)
类只是一个包含所有这些变量的类。比率的类型是双倍的。
我怀疑类定义有些奇怪。Jackson不会截断双值,除了二进制浮点符号的常见注意事项(即,如果您想避免任何舍入错误,则应使用BigDecimal
等)之外,这些注意事项不足以导致此类问题。
因此,了解theClass
的定义将是有用的。如果截断确实以解释的方式发生,那肯定是一个错误。
我没有和JackSon合作过,但你能试一下吗。。。。
DecimalFormat df = new DecimalFormat("#.###");
df.format(doubleValue);