int i = 1/0;
并且它不会编译。当我将代码更改为double i = 1.0/0.0;
时,代码编译得很好。当我运行代码时,它给出了一个错误/ 0.我期待着......但是为什么在使用双精度而不是整数时它编译得很好?我正在使用Blue J IDE
答案 0 :(得分:4)
将int
值除以零将导致ArithmeticException
,因此表达式1 / 0
是非法的。
将double
值除以零的结果是无穷大或NaN
* ,因此表达式1.0 / 0.0
是合法的
*)请参阅t_over对具体内容的评论: