类型转换是将一个值从一个类型改为另一种类型的过程。例如可以将string类型的数据“457”转换成数值型,也可以将任意类型的数据更改为string类型。
如果从低精度数据向高精度数据转换,则永远不会溢出,并且总会成功;如果把高精度数据向低精度数据类型转换,则该数据可能会丢失信息,或者失败。
数据转换有两种方式它们分别是隐式类型转换和显示类型转换。
一.隐式类型转换
隐式类型转换也称自动转换,它自动执行低级类型数据转换高级类型数据,程序员无需进行任何操作。下列基本数据类型会涉及数据转换,不包括逻辑类型和字符类型。这种类型按精度从低到高排列的顺序为byte<short<int<long<float<double。
例如,可以将int型变量直接赋值给float型变量,此时int型变量将隐式转换成float型变量。代码如下:
int x=50; //声明int型变量x
float y=x; //将x赋值给y,y的值为50.0
隐形转换也要遵循一定的规则,来解决在什么情况下将哪种类型的数据转换成另一种类型的数据。以下图为隐形转换的规则
例题:使用隐形转换提升数值精度
二.显示类型转换
当要把高精度类型转换成低精度类型时,必须使用显示类型转换(也称强制类型转换)运算。语法如下:
(类型名)要转换的值
例如将高精度转换成低精度的代码如下:
int a=(int)45.23; //此时输出a的值为45
long y=(long)54.25f; //此时输出y的值为54
int b=(int)'d'; //此时输出b的值为100
执行显式转换时,可能会损失精度。