A:下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345; //12.345首先是Double类型,大转小,精度!
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
float f1 = 12.345f;
float f2 = (float)12.345; //12.345首先是Double类型,大转小,精度!
B:下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
思想、分析: 数据类型 转换(精度) byte,short,char之间不相互转换,直接转成int类型参与运算。
结果: byte b3 = b1 + b2; //b1,b2,byte,short,char之间不相互转换,直接转成int类型参与运算。
同理: short s = 1;
s = s + 1; //s先转成int,intl转short,精度。
short s = 1;
s += 1; //可行的
请问上面的代码哪个有问题?