一、将占用存储空间小的类型转换为占用存储空间较大的数据类型时,则作自动类型转换(隐式类型转换),反之必须做强制类型转换(显式转换)。
1.1 小转大——自动类型转换。
例1:
输入
float number1 = 45f ;
int number2 = 152;
System.out.println(number1 + number2);
程序输出
奇数
197.0
隐式类型转换规则
操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
例2:
输入:
byte mybyte = 127;
int myint =150;
char mychar = 10;
float myfloat = 452.12f;
double mydouble = 45.45646;
System.out.println("127+452.12 = "+(mybyte + myfloat));
System.out.println("127*150 = "+mybyte + myint);
System.out.println("10/127 = " +mybyte/mychar);
System.out.println("45.46546+10 = "+(mydouble + mychar));
程序输出结果如下:
127+452.12 = 579.12
127*150 = 127150
127/10 = 12
45.46546+10 = 55.45646
1.2 、大转小——强制类型转换。
当把高精度的变量的值赋给低精度的变量时,必须使用显示类型转换运算(强制类型转换)。与方法格式:(类型名)要转换的值
输入:
int a = (int)45.23;
long y = (long)456.6F;
int b = (int)'d';
short s = 516;
byte b1 = (byte)s;
System.out.println("a = " +a);
System.out.println("y = "+y);
System.out.println("b = "+b);
System.out.println("b1 = "+b1);
程序输出如下:
a = 45
y = 456
b = 100
b1 = 4
注意:当把一个证书赋值给一个byte、short、int、long型变量时,不可超出这些变量的取值范围,否则就会发生数据溢出。得到的就
是错误的数据。