Java2-2 基本数据类型的转换
-
数据类型按精度从低到高:
byte short char int long float double -
隐式转换:把级别低的数据类型赋值给级别高的数据类型
例如:float x=100; 输出x的结果为100.0 -
显式转换:把级别高的数据类型赋值给级别低的数据类型
例如:int x=(int)34.89; 输出 x 的值为34
long y=(long)56.98F; 输出 y 的值为56 -
常见问题:
-
例如:
int x=1;byte y;char c=65;
"y=65+32"是正确的,因为97在byte的取值范围之内
“y=c+32”是错误的,编译器不检查变量C的值,并且默认为int型,因int型精度高于byte型,需进行强制转换,故错误 -
把double型数据赋值给float型数据时没有进行强制转换(高-低)
例如:float x=12.4;
由已知float表示形式可知,float型变量后缀必须加f,double型变量不强制加d ,例题中12.4为double型变量,将高精度double型变量赋值给低精度float型变量,且没有进行强制转换,故错误
修改方法: -
float x=12.4f
-
float x=(float) 12.4;