数据类型的转换分为自动转换和强制转换
总结:由于编译时转化成二进制时,不同数据类型的二进制长度不同会导致无法正常编译。
自动转换
变量在做计算的时候有出现溢出的情况,这个时候小的数据类型会自动向大的数据类型转换
byte, short,char,float都可以出发自动转换
class Test1{
public static void main (String[] args){
byte a = 12;
byte a1 = 2+3;
int b = a+2;
// b必须采用int类型,因为可能存在溢出的情形 short,char,都是这种情况
// 单精度之间的运算不需要转换,整数和小数运算,转换成对应的精度
float x = 2.1;
float y = 4.2;
float z = x + y;
folat q = x*y;
System.out.println(b+","+z+","+q)
// 单精度和双精度运算自动转化到double
double d1 = 2.3;
double re = x+d1;
System.out.println(re);
}
}
强制转换
语法:(目标数据类型) 变量名
总结:二进制上进行字节的增减,要转换的变量的值如果超过目标类型的最大值,则会损失精度
class Test2{
public static void main (String[] args){
int k=30;
short s = (short)k;
byte b = (byte) k;
System.out.println(s);
System.out.println(k) ;
// 小数取整
float f=12.33f;
int n = (int)f;
System.out.println(n);
}
}
网友评论