类型转换
低级→高级
byte,short,char→int→long(整数64位)→float(小数32位)→double
强制转换
从低级到高级,溢出问题,精度变低
溢出
public class 强制转换 {
public static void main(String[] args) {
int a= 128;
byte i= (byte)a;
System.out.println(i);
System.out.println(a);
}
}
输出结果i=-128,a=128(byte最大为127,128>127,超出范围)
操作比较大的数字注意溢出问题
System.out.println("====================");
int money=10_0000_0000;
//下划线可分隔大数,四位
int years=10;
System.out.println(money*years);
输出为1410065408
System.out.println("====================");
int money1=10_0000_0000;
int years2=10;
System.out.println(money*(long)years);
输出为10000000000
精度变低
float b= 1.123456f;
int c=(int)b;
System.out.println(b);
System.out.println(c);
输出结果b=1.123456,c=1(float小数,int整数,精确度变低)
强制转换成什么类型,括号中写的就是什么类型
自动转换
高级到低级