关于JAVA程序的结果的解释

来源:百度知道 编辑:UC知道 时间:2024/06/11 04:46:13
class Qd073{
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

由于d1 d2是double型数据,所以运行正常,d1/d2结果是infinity,然后强行转换为byte型。byte占8位其中第一位是符号位1111 1111 1111 1111 1111 1111 1111截取后就是-1

d1 = d1/d2; 得到的是一个无穷大的数,已经不能正确显示了.