GWT - Double to Long导致错误的数字

时间:2014-10-19 12:24:15

标签: java json google-app-engine gwt

我不确定这是不是一个错误,如果我只是达到GWT的限制,或者我只是愚蠢地创建一个如此高的数字的双倍。

在客户端执行以下操作时:

Double d = 10152826455075087d;
GWT.log("Value is now: " + d.toString());

这将打印数字:10152826455075088

这是从facebook和atm检索到的ID我将其存储为Long,但如果这是一个限制,我必须开始将我的ID存储为字符串。

有人可以确认这是一个错误还是限制?此外,如果它是一个错误,我在哪里报告?

谢谢!

1 个答案:

答案 0 :(得分:1)

这个数字是如此巨大,双精度浮点数的epsilon高于1. Epsilon描述了当前和下一个可能的数字之间的距离。

在浏览器的控制台中试试:

console.log(10152826455075087);

它将打印10152826455075088.JavaScript将所有数字存储为双精度浮点数。