变量的数据类型转换问题:
* 分为两种:
* 隐士数据类型:(小转大)
* 小的数据类型的变量或者值,可以直接赋值给大的数据类型变量
* 格式:大的数据类型 变量名 = 小的数据类型的变量或者值;
* byte<short,char<int<long<float<double
public class Demo04StyleTrans { public static void main(String[] args) { //隐士数据类型转换: //格式:大的数据类型 变量名 = 小的数据类型的变量或者值; short s =100; int i = s; System.out.println(i);//100 long l = 1000; System.out.println(l);//1000 float f = 999F; System.out.println(f);//999.0
}
}
强制数据类型转换:(小转大)
* 大的数据类型的变量或者值,赋给小的数据类型变量。
* 格式:小的数据类型 变量名 = (小的数据类型)大的数据类型变量或者值
public class Demo04StyleTrans { public static void main(String[] args) { //强制数据类型转换:(大转小) int a = 10; short b = (short)a; System.out.println(b);//10 int c = (int)200L; System.out.println(c); } }
注意事项:1、如果原数据已经超出了接受数据的范围,不能转换,出现乱码
2、如果short,char,byte,int类型在进行相互运算的时候,类型会自动提升为int类型。
public class Demo04StyleTrans { public static void main(String[] args) { //注意事项:1、如果原数据已经超出了接受数据的范围,不能转换,出现乱码 short x = 150; byte y = (byte)x; System.out.println(y);//会出现一个乱的数字。-106 //注意事项:2、如果short,char,byte,int类型在进行相互运算的时候,类型会自动提升为int类型。 short m = 10; byte n = 20; //short sum = m + n;//Type mismatch: cannot convert from int to short 类型不匹配:不能从int转换为short short sum = (short)(m+n); int sm = m + n; System.out.println(sum); System.out.println(sm);
}
}