double d=1/0.0;
System.out.println(d);
这段代码打印出Infinity
,但是如果我们写double d=1/0;
并将其打印出来,我们会得到这个异常:Exception in thread "main" java.lang.ArithmeticException: / by zero
at D.main(D.java:3)
为什么在一个情况下Java知道除以零是无限大,而对于整数0它没有定义呢?
在两种情况下,d都是double类型,结果都是无限大。
double d=1/0
就等同于double d=(double) (1/0)
,而double d=1/0.0
则等同于double d=((double) 1)/0.0d
。 - Mike Samuel