A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩超 中级黑马   /  2013-4-18 14:20  /  2237 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

传智的入学基础自学课件ppt上有这么一段内容

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

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

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

4 个回复

倒序浏览
System.out.println(1.0 / 0); 这个是可以编译成功的。输出结果为无穷大。

System.out.println(1 / 0); 这个的话会爆异常。
Exception in thread "main" java.lang.ArithmeticException: / by zero   除0异常。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
浮点数除0 无异常结果为 正数为Infinity  负数为- Infinity
整数除0 会产生ArithmeticException 算术异常 为RunTimeException

以上完毕

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 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. */
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
兄台,这0不能做除数  是小学数学学得 {:soso_e103:}   哈哈...   大意了吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马