我不确定这是否是一个错误,是否我只是遇到了 GWT 的限制,或者我是否只是愚蠢地创建了具有如此高数字的 double 值。
在客户端执行以下操作时:
Double d = 10152826455075087d;
GWT.log("Value is now: " + d.toString());
这将打印号码:10152826455075088
这是从 facebook 和 atm 检索到的 ID,我将其存储为 Long,但如果这是一个限制,我必须开始将我的 id 存储为字符串。
有人可以确认这是否是错误或限制吗?另外,如果它是一个错误,我应该在哪里报告它?
谢谢!
最佳答案
这个数字是如此之大, double float 的 epsilon 比 1 还要高。Epsilon 描述了当前数字与下一个可能数字之间的距离。
在浏览器的控制台中尝试此操作:
console.log(10152826455075087);
它将打印 10152826455075088。JavaScript 将所有数字存储为 double float 。
关于java - GWT - double 到长结果导致错误的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26450472/