Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 强制转换(int)无法正常工作_Java_Int_Double - Fatal编程技术网

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)
初始化了一个double
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

这个结果显然是不正确的。

这是因为Integer有限制INT_MAX-2147483647

这是因为Integer有限制INT_MAX-2147483647

Google“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,类是不同的。