- 强制类型转换:自动类型提升运算的逆运算
- 需要使用强转符:()。
- 注意点:强制类型转换,可能导致精度损失。
大转小可,小转大不可
class VariableTest3{
public static void main(String[] args){
double di = 12.3;
int i1 = (int)d1;//截断操作
//double di = 12.9;
//int i1 = (int)di;
System.out.println(i1);
long l1 = 123;
//没有加L或者l,123自动转换成了int型
//long li = 1232432424;
//编译报错:过大整数
//float f1 = 12.3;
//自动转为double型,double比float大,编译失败,所以float必须加F或者f
short s2 = (short)l1;
System.out.println(l1);
int i2 = 128;
byte b = (byte)i2;
System.out.println(b);
//编译结果为-128
//整型常量默认为int型
//浮点型常量默认类型为double型
float f1 = 12.3f;
//byte b1 = b + 12.3;编译失败
//float f1 = b + 12.3;编译失败
}
}
基本类型之间的运算规则
byte、char、short——>int——>long——>float——>double
- 当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型(容量的大小指的是表示数的范围的大小)
- 特别的,当byte、char、short三种类型的变量做运算时,结果为int型