类型转换
类型转换方向(存储空间较小的数据可以转换到存储间大的,反之不行)
Int I = 10;
Long l = I;//不丢精度。
Int b = 10;
Byte c = b;//错误,大转小
强制类型转换(大的转成小的,产生精度丢失的问题)
Int b = 10;
Byte c = (byte)b;//丢失精度。
自动类型提升(多种类型变量运算结果可能造成结果类型提升,编译强制提升类型)
Byte b =10;
Byte c =20;
Byte d = b+c//错误,int d
Byte d = (byte)b+c;
自动类型提升结论
AB其中有double, 运算结果为double
AB其中有float, 运算结果为float.
AB 其中有Long ,运算结果为long
其余情况为int.
其中你得知道byte short char int float double 的级别,而且要知道每种各自占多少位或字节 就是占用空间较小的和占用空间较大的
进行运算时,运算结果是占用空间较大那个类型。
结果:
283.5+515-126.3616
result=672.1384
第一个283.5是50*5.67 50虽然是byte,但是float比byte优先级高转为float。
515=5000*97取整 得到的,97是a的ASCII码。
126.3616=1024*0.1234得到 .1234就是0.1234
672.1384就是前面那个式子283.5+515-126.3616的结果。
|