黑马程序员技术交流社区
标题:
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 编辑
public static void main(String[] args)
{
System.out.println(-1/0.0);//-Infinity 负无穷大
System.out.println(1/0.0);//Infinity 正无穷大
System.out.println(0/0.0);//NaN
System.out.println(1.0/0);//Infinity 正无穷大
//上面的运算都被转成浮点数进行运算,浮点数中除以0,是不会有异常的
System.out.println(1/0);
//而1/0为两个整数,会发生ArithmeticException: / by zero,大家都知道的。
//System.out.println(Math.sqrt(-2));//计算负数的平方根NaN
}
/*
在浮点数的世界里不会抛出除0错,而是会返回正无穷大或负无穷大。
究其原因,可能是因为在浮点数运算中,
不存在真正意义上的0,而是一个无限接近于0的浮点数。
*/
复制代码
作者:
刘兆华
时间:
2013-4-21 16:27
兄台,这0不能做除数 是小学数学学得 {:soso_e103:} 哈哈... 大意了吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2