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