Java 强制转换(int)无法正常工作
我用Java 强制转换(int)无法正常工作,java,int,double,Java,Int,Double,我用Math.pow(10,24)初始化了一个doublea。 现在我需要将doublea转换为intb: a = Math.pow(10,24) int b = (int)a; System.out.println(a); System.out.println(b); 系统打印出: 1.0E24 2147483647 这个结果显然是不正确的。这是因为Integer有限制INT_MAX-2147483647这是因为Integer有限制INT_MAX-2147483647Google“java
Math.pow(10,24)
初始化了一个doublea
。
现在我需要将doublea
转换为intb
:
a = Math.pow(10,24)
int b = (int)a;
System.out.println(a);
System.out.println(b);
系统打印出:
1.0E24
2147483647
这个结果显然是不正确的。这是因为Integer有限制INT_MAX-2147483647这是因为Integer有限制INT_MAX-2147483647Google“java Integer overflow”BigInteger是你的朋友,尽管考虑到double的限制,即使这也不能100%准确。10^24太大了,无法放入
INT
。整数的最大值是10^31-1,还是我错了?Google“java Integer overflow”BigInteger是您的朋友,尽管考虑到double的限制,即使这样也不会100%准确。10^24太大,无法容纳int
。整数的最大值是10^31-1还是我错了?好的,但什么是INT\u max
?在Java中,INT\u MAX
是在哪里定义的?但是为什么INT\u MAX和MAX\u VALUE不同呢?您可以在这里阅读有关INT这样的基本数据类型的更多信息:基本数据类型INT,类是不同的。好的,但是什么是INT\u MAX
?在Java中,INT\u MAX
是在哪里定义的?但是为什么INT\u MAX和MAX\u VALUE不同呢?您可以在这里阅读有关INT这样的基本数据类型的更多信息:基本数据类型INT,类是不同的。