使用Json.toJson时浮点的increct值

使用Json.toJson时浮点的increct值,json,playframework,playframework-2.4,Json,Playframework,Playframework 2.4,我不知道这是不是在玩虫子!或者如果有其他原因,但这就是正在发生的事情 我有一个对象(MyObject),它有一个Float类型的成员变量 public class MyObject { private Float data; } 使用Json.toJson()(来自play.libs.Json)发送包含MyObject项的响应时,值会被置乱 例如: MyObject myObj = new MyObj(); myObj.setData(3.2f); JSON字符串: { "d

我不知道这是不是在玩虫子!或者如果有其他原因,但这就是正在发生的事情

我有一个对象(
MyObject
),它有一个Float类型的成员变量

public class MyObject {
    private Float data;
}
使用
Json.toJson()
(来自
play.libs.Json
)发送包含
MyObject
项的响应时,值会被置乱

例如:

MyObject myObj = new MyObj();
myObj.setData(3.2f);
JSON字符串:

{
    "data": 3.200000047683716
}
如果我将数据类型更改为
Double
,则一切正常


我怀疑这可能是因为浮点精度与双精度以及
JSON.toJson()
如何处理
float
对象,然而,在调试中,
myObj.data
3.2

是的,问题是3.2不能准确地用
浮点表示。实际上,它也不能由
双精度
实现,但错误很小,因此会被丢弃

方便的参考资料: