Java中的数据类型转换
1、隐式类型转换
从低级类型向高级类型转换,系统将会自动执行。这种类型的转换被称为隐式转换。
下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。
这些类型按精度从低到高排列的顺序为byte<short<int<long<float<double
例如:使用int型变量为float型变量赋值,此时int型变量将隐式转换成float型变量。
int x = 50; //声明int型变量x
float y = x; //将x赋值给y
此时执行输出语句,y的结果将是50.0。
例如:在项目中创建类Conver,在主方法中创建不同数值型的变量,实现将各变量隐式转换。
public class Conver { //创建类
public static void main(String[]args) { //主方法
byte mybyte = 127; //定义byte型变量mybyte,并把byte型变量允许的最大值赋给mybyte
int myint = 150; //定义int型变量myint,并赋值150
float myfloat = 452.12f; //定义float型变量myfloat,并赋值
char mychar = 10; //定义char型变量mychar,并赋值
double mydouble = 45.46546; //定义double型变量mydouble,并赋值
/*将运算结果输出*/
System.out.println("byte型与float型数据进行运算的结果为:" + (mybyte + myfloat));
System.out.println("byte型与int型数据进行运算的结果为:" + (mybyte + myint));
System.out.println("byte型与char型数据进行运算的结果为:" + (mybyte + mychar));
System.out.println("double型与char型数据进行运算的结果为:" + (mydouble + mychar));
}
}
2、显式类型转换
当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算(又称强制类型转换)。语法如下:
(类型名)要转换的值
例如:将不同的数据类型进行显式类型转换。
int a = (int)45.23; //此时输出a的值为45
long y = (long)456.6f //此时输出y的值为456
int b = (int)'d'; //此时输出b的值为100
执行显式类型转换时,可能会导致精度损失。除boolean类型以外其他基本类型,都能以显式类型的方法实现转换。
当把整数赋值给一个byte,short,int,long型变量时,不可以超出这些变量的取值范围,否则必须进行强制类型转换。例如:
byte b = (byte)129;
变量的取值范围,否则必须进行强制类型转换。例如:
byte b = (byte)129;