数据类型转换就是将一个值从一种数据类型转换为另外一种数据类型的过程。例如可以将String类型的数据“457”转换为数值型,也可以将任意类型的数据转换为String类型。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型转化为低精度数据类型时,则会有信息丢失,有可能失败。
数据类型的转换有两种方式,则隐式转换与显式转换。
隐式类型转换:从低级类型向高级类型转换,系统将自动执行,程序员无需进行任何操作。
下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这些类型按精度从低到高排列的顺序如下:
byte<short<int<long<float<double.
例:使用int型变量为float型变量赋值,此时int型变量将隐式转换为float型变量。示例如下:
int x =50;//声明int型变量
float y=x;//将x的值赋给y
此时执行输出语句,y的结果将是50.0.
隐式数据类型转换遵循一定的规则。如下所示:
操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
---|---|---|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | doub |
通过一个例子介绍数据类型隐式转换:
例:在项目中创建类Convert,在主方法中创建不同数值类型的变量,实现将各变量隐式转换。
显式类型转换: 当把高精度的变量的值赋给低精度低精度的变量时,必须使用显示类型转换运算(又称强制类型转换)
语法如下:(类型名)要转换的值
例:将不同类型的数据进行显示类型转换。实例代码如下:
int a = (int)45.23;
long y = (long)456.6F;
int b = (int)'d';
执行显示类型转换时。可能会导致精度损失,除boolean类型以外其他类型,都能以显式类型的方法实现转换。