java - GWT - double 到长结果导致错误的数字

标签 java json google-app-engine gwt

我不确定这是否是一个错误,是否我只是遇到了 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/

相关文章:

python - RPX、OpenID - 如何为 AppEngine 编写正确的登录处理程序

google-app-engine - Google App Engine app.yaml URL 映射

Java方法等于循环列表

java - Java从串口读取文件

java - MVC - View 可以观察对象吗?

php - 如何确保 API 请求是由能够做到这一点的特定人员发出的?

java - 如何用GSON解析这个JSON字符串?

c# - 解析动态数据

python-3.x - Google Cloud Console - Flask - main.py vs 包

java - 获取某些字符串之间的数组或字符串列表(搜索多个字符串)