【发布时间】:2016-04-02 19:54:58
【问题描述】:
我用Math.pow(10,24) 初始化了一个双重a。
现在我需要将 double a 转换为 int b:
a = Math.pow(10,24)
int b = (int)a;
System.out.println(a);
System.out.println(b);
系统打印出来:
1.0E24
2147483647
这个结果显然是不正确的。
【问题讨论】:
-
谷歌“java整数溢出”
-
BigInteger 是你的朋友,尽管考虑到双精度的限制,即使这样也不会 100% 准确。
-
10^24 太大,无法放入
int。 -
Integer Integer 的最大值是 10^31 -1 还是我错了?