黑马程序员技术交流社区
标题:
运算的特殊情形
[打印本页]
作者:
暴风
时间:
2014-9-26 00:27
标题:
运算的特殊情形
1.System.out.println(3 / 0); 异常
2.System.out.println(3.0 / 0); Infinity
3.System.out.println(3 % 0); 异常
4.System.out.println(3 % 0.0); NAN
5.System.out.println(3.0 % 0); NaN
谁能解释一下为何输出结果是这样?
作者:
fantacyleo
时间:
2014-9-26 01:25
这个涉及到一些底层知识,其实没必要太关注。我简单说说吧:
整数除法如果除数为0,cpu会发出一个异常信号,当然这不必然导致JVM也抛出一个异常。怎么处理cpu发出的异常,是操作系统和JVM的事,只不过JVM恰好选择了抛出异常而已。
浮点除法的除数为0,就涉及到浮点数表示的问题。Java的浮点数表示采用IEEE754标准,按这个标准表示的浮点数包含3个特殊情况:正、负无穷大和NaN(not a number) 所以你会看到Infinity和NaN
作者:
暴风
时间:
2014-9-26 20:52
fantacyleo 发表于 2014-9-26 01:25
这个涉及到一些底层知识,其实没必要太关注。我简单说说吧:
整数除法如果除数为0,cpu会发出一个异常信号 ...
嗯!多谢了大虾!
作者:
牛兴亮
时间:
2014-9-27 08:41
fantacyleo 发表于 2014-9-26 01:25
这个涉及到一些底层知识,其实没必要太关注。我简单说说吧:
整数除法如果除数为0,cpu会发出一个异常信号 ...
领教了,威武
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2