不同的基本类型直接可以相互转化,主要有两种方式:
自动类型转化(隐式类型转换):从小类型到大类型可以自动完成。
强制转化:从大类型到小类型需要强制转换符。因为大类型的精度值大于小类型,取值范围大于小类型,所以,当使用强制转化时,有可能会造成精度的损失或者溢出,所以,在使用强制转化时要求显式的告诉编译器,正在进行强制转换。
基本类型转化如下示例所示,注意强制转换时可能会造成的精度丧失和溢出。
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
Java基本类型间转换
最新推荐文章于 2023-06-23 22:43:56 发布
本文详细介绍了Java中基本类型的自动类型转换和强制类型转换,包括隐式转换和显式转换可能导致的精度损失和溢出问题。通过示例代码展示了整型与长整型、浮点型与双精度型之间的转换,强调了在进行强制类型转换时需要注意的潜在风险。
摘要由CSDN通过智能技术生成