在Java的程序员中是要求参与运算的数据类型都是保持一致的,如果有数据类型不一致的情况将会发生类型的转换。
数据类型转换要解决的问题
不同类型占用的存储空间是不同的
什么时候会发生类型转换
1.赋值的时候=左右两边类型不一致
2.不同类型的数据做运算
数据类型转换的分类
自动类型转换
将取值范围小的数据类型赋值给取值范围大的数据类型
取值范围小的数据类型和取值范围大的数据类型做算
正确
byte a=8;
int b=a;
long c = b;
double d=c;
错误
int x=24;
byte b=x;//编译错误。
int x = 34.5;
boolean boo = x;//error
int g = 17;
int y = g;
y=y+10;
short s; s=y;//error
byte b=3;
byte v=b;
short n=12;
v=n;//error
byte k=128;//error
int p = 3*g+y;
自动类型转换原理
强制类型转换
int a = 功能1()
功能2(byte a)
将取值范围大的数据类型赋值给取值范围小的数据类型
通用格式
变量 = (目标类型) 值;
byte a;
int b=4660;
a = (byte) b;
强制类型转换中精度损失问题
不要随意写成强转的格式可能造成数据溢出,丢失 浮点转整形,直接丢掉小数部分,保留整数部分返回