不同的基本类型直接可以相互转化,主要有两种方式: 自动类型转化(隐式类型转换):从小类型到大类型可以自动完成。 强制转化:从大类型到小类型需要强制转换符。因为大类型的精度值大于小类型,取值范围大于小类型,所以,当使用强制转化时,有可能会造成精度的损失或者溢出,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。 基本类型转化如下示例所示,注意强制转换时可能会造成的精度丧失和溢出。 int a = 100; int b = 200;long c = a + b; //自动将int转化为long long l1 = 1024l; int i = (int) l1; //需要加强制转化符由于1024在int的范围内,所以没有产生溢出 long l = 1024L * 1024 * 1024 * 4;int j = (int) l; //会产生溢出System.out.println(j); // 结果为:0 double pi = 3.1415926535897932384;float f = (float) pi; //会造成精度的损失,因为单精度的精确度小于doubleSystem.out.println(f); //结果为:3.1415927 int a = 100;int b = 200;long c = a + b; //自动将int转化为long long l1 = 1024l;int i = (int) l1; //需要加强制转化符由于1024在int的范围内,所以没有产生溢出 long l = 1024L * 1024 * 1024 * 4;int j = (int) l; //会产生溢出System.out.println(j); // 结果为:0 double pi = 3.1415926535897932384;float f = (float) pi; //会造成精度的损失,因为单精度的精确度小于doubleSystem.out.println(f); //结果为:3.1415927
|