package text;
public class TestConvert {
//类型自动转换规则:系统在计算过程中范围小的自动转换成范围大的
//容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但可能会造成精度的降低或溢出
//数据类型按容量大小排序:byte,short,char<int<long<float<double,注意:byte,short,char之间不会互相转换
public static void main(String[] args) {
int i1 = 123;
int i2 = 456;
double d1 = (i1 + i2) * 1.2;//系统会自动转化成double型运算
System.out.println(d1);
float f1 = (float)((i1 + i2) * 1.2);//需要加强制型的转化符
System.out.println(f1);
byte b1 = 1;
byte b2 = 2;
byte b3 = (byte)(b1 + b2);//系统运算时将转换为int型运算,需要加强制类型转化
System.out.println(b3);
double d2 = 1e200;
float f2 = (float)d2;//会产生溢出
System.out.println(f2);
float f3 = 1.23f;//必须加f
long l1 = 123;
long l2 = 30000000000L;//必须加L
float f = l1 + l2 + f3;//系统将转化成flaot计算
long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
System.out.println(l);
}
}