java为什么double类型除了0后不会抛出异常? 如下: 答案居然是 -1,为什么?

public class DoubleDivide0 { public static void main(String[] args) { double d1 = 1.0; double d2 = 0.0; byte b = 1; d1 = d1 / d2; b = (byte) d1; System.out.print(b); } } 答案居然是 -1,为什么?

第1个回答  推荐于2018-04-13
在java中,浮点数double和float可以除0,返回无穷大

public class Maintest {
public static void main(String[] args) {
double d1 = 1.0d;
double d2 = 0.0d;

byte b = -128;
d1 = d1/d2;

System.out.println(d1); //输出无穷大

b = (byte) d1; //byte类型的范围是0~255,d1无穷大超出了范围,返回-1
System.out.println(b);

}
}本回答被提问者和网友采纳