3

这应该是一个简单的问题,但我在互联网上找不到任何东西。这是 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只是一个包含所有这些变量的类。比率的类型是双倍的。

4

2 回答 2

1

我会怀疑类定义有些奇怪。Jackson 不会截断 double 值,除了通常使用二进制浮点表示法的警告(即,如果你想避免任何舍入错误,你应该使用BigDecimaletc),这不足以导致这样的问题。

因此,查看 的定义会很有用theClass。如果截断确实按照解释的方式发生,那肯定是一个错误。

于 2012-09-10T20:49:56.200 回答
0

我没有和杰克逊一起工作过,但你能以某种方式尝试这样的事情吗......

DecimalFormat df = new DecimalFormat("#.###");
df.format(doubleValue);
于 2012-09-10T02:59:10.510 回答