代码如下:
public static void main(String[] args) {
// 注释掉的代码报:java.lang.ArithmeticException: / by zero
// System.out.println(10/0);
// System.out.println(Math.round(10/0));
// System.out.println((int)Math.round(10/0));
// System.out.println("----------");
System.out.println(10/0.0);
System.out.println(Math.round(10/0.0));
System.out.println((int)Math.round(10/0.0));
System.out.println("---------");
System.out.println(10.0/0);
System.out.println(Math.round(10.0/0));
System.out.println((int)Math.round(10.0/0));
System.out.println("----------");
System.out.println(10.0/0.0);
System.out.println(Math.round(10.0/0.0));
System.out.println((int)Math.round(10.0/0.0));
}
输出为:
Infinity
9223372036854775807
-1
---------
Infinity
9223372036854775807
-1
----------
Infinity
9223372036854775807
-1
当除数和被除数都是整形的时候,报错,有一个不为整形,代码就不会报错,但是数据会异常,强转为int时直接变成了-1.