java除以1.0/0.0:输出为无穷大 1 月,3 周 Questions & Answers 5966 double d=1.0/0.0; 输出为Infinity double d=1/0; 输出为ArithmeticException 这两者有什么区别? 这里的无限是什么意思
# 2 楼答案 第一种情况被视为double上的除法,第二种情况被视为int上的除法,因此称为ArthimeticeException 这就是无限的含义 http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#POSITIVE_INFINITY 双打和浮点数的划分是按照浮点数比赛的IEEE 754标准进行的,该标准不应引发异常
# 3 楼答案 从数学上讲,除零是未定义的,尽管可以粗略地认为它是无穷大。(稍微严格一点,对于x的任何值,它都大于x。) IEEE754浮点双精度(Java使用)表示无穷大。这是1.0/0.0的结果。从这个意义上说,1.0/0.0是可计算的,因为它发生在浮点运算中 整数类型没有无穷大的表示,因此会引发异常1 / 0是用整数算术计算的
# 1 楼答案
浮点数有一种编码“无穷大”的方法。所以无穷大是双变量的有效值。整数变量没有此选项。因此会抛出一个异常
# 2 楼答案
第一种情况被视为double上的除法,第二种情况被视为int上的除法,因此称为ArthimeticeException
这就是无限的含义
http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html#POSITIVE_INFINITY
双打和浮点数的划分是按照浮点数比赛的IEEE 754标准进行的,该标准不应引发异常
# 3 楼答案
从数学上讲,除零是未定义的,尽管可以粗略地认为它是无穷大。(稍微严格一点,对于x的任何值,它都大于x。)
IEEE754浮点双精度(Java使用)表示无穷大。这是1.0/0.0的结果。从这个意义上说,1.0/0.0是可计算的,因为它发生在浮点运算中
整数类型没有无穷大的表示,因此会引发异常
1 / 0
是用整数算术计算的