黑马程序员技术交流社区

标题: System.out.println(1.0 / 0); [打印本页]

作者: 韩超    时间: 2013-4-18 14:20
标题: System.out.println(1.0 / 0);
传智的入学基础自学课件ppt上有这么一段内容

比较下列结果,想想原因:
System.out.println(1.0 / 0);
System.out.println(1 / 0);

我试着在机子上编译这段,可惜编译不成功,这是为什么?

作者: 殇_心。    时间: 2013-4-18 14:25
System.out.println(1.0 / 0); 这个是可以编译成功的。输出结果为无穷大。

System.out.println(1 / 0); 这个的话会爆异常。
Exception in thread "main" java.lang.ArithmeticException: / by zero   除0异常。
作者: HM张健    时间: 2013-4-18 15:02
浮点数除0 无异常结果为 正数为Infinity  负数为- Infinity
整数除0 会产生ArithmeticException 算术异常 为RunTimeException

以上完毕
作者: hacket    时间: 2013-4-18 18:36
本帖最后由 hacket 于 2013-4-18 18:39 编辑

  1.         public static void main(String[] args)
  2.         {
  3.                 System.out.println(-1/0.0);//-Infinity 负无穷大  
  4.                 System.out.println(1/0.0);//Infinity 正无穷大  
  5.                 System.out.println(0/0.0);//NaN  
  6.                 System.out.println(1.0/0);//Infinity 正无穷大  
  7.                 //上面的运算都被转成浮点数进行运算,浮点数中除以0,是不会有异常的
  8.                 System.out.println(1/0);
  9.                 //而1/0为两个整数,会发生ArithmeticException: / by zero,大家都知道的。

  10.                 //System.out.println(Math.sqrt(-2));//计算负数的平方根NaN
  11.         }
  12. /*
  13.         在浮点数的世界里不会抛出除0错,而是会返回正无穷大或负无穷大。
  14.         究其原因,可能是因为在浮点数运算中,
  15.         不存在真正意义上的0,而是一个无限接近于0的浮点数。
  16. */
复制代码

作者: 刘兆华    时间: 2013-4-21 16:27
兄台,这0不能做除数  是小学数学学得 {:soso_e103:}   哈哈...   大意了吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2