Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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 除以1.0/0.0:输出为无穷大_Java - Fatal编程技术网

Java 除以1.0/0.0:输出为无穷大

Java 除以1.0/0.0:输出为无穷大,java,Java,输出为Infinity double d=1.0/0.0; 输出为算术异常 这两者有什么区别? 这里无限的含义是什么?第一种情况被视为双精度上的除法,第二种情况被视为int上的除法,因此是ArthimeticeException 这就是无限的含义 double和float的除法符合浮点匹配的标准,不应引发异常。从数学上讲,零除法是未定义的,尽管它可以粗略地视为无穷大。(稍微严格一点,对于x的任何值,它都大于x。) IEEE754浮点双精度(Java使用)具有无穷大的表示形式。这是1.0/0.

输出为
Infinity

double d=1.0/0.0;
输出为
算术异常

这两者有什么区别?
这里无限的含义是什么?

第一种情况被视为双精度上的除法,第二种情况被视为int上的除法,因此是ArthimeticeException

这就是无限的含义


double和float的除法符合浮点匹配的标准,不应引发异常。

从数学上讲,零除法是未定义的,尽管它可以粗略地视为无穷大。(稍微严格一点,对于x的任何值,它都大于x。)

IEEE754浮点双精度(Java使用)具有无穷大的表示形式。这是1.0/0.0的结果。从这个意义上讲,1.0/0.0是可计算的,因为它发生在浮点运算中


整数类型没有无穷大的表示形式,因此会引发异常
1/0
是用整数算术计算的。

浮点数有一种编码“无穷大”的方法。所以无穷大是双变量的有效值。整数变量没有此选项。所以会抛出一个异常。

好的,但我是如何实现用双精度除零的?问题似乎是“为什么用双精度除零不会抛出算术异常,而用整数除零会抛出算术异常?”。补充这个答案。查看本教程中有关数据表示的内容,该教程非常具有说明性:
double d=1/0;