一、为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量
二、什么是自动类型转换?
类型范围小的变量,可以直接赋值给类型范围大的变量。
1.表达式的自动类型转换:
在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算:
byte 、short、char ——>int——>long—— >floatl ——>double
注意事项:
(1)表达式的最终结果类型由表达式中的最高类型决定
(2)在表达式中,byte、short、char 是直接转换成int类型参与运算的
2.强制类型转换:
强行将类型范围大的变量、数据赋值给类型范围小的变量。
(1)类型范围大的数据或者变量,直接赋值给类型范围小的变量,会报错。
例:
int a =20;
byte b = a; //会进行报错
(2)正确的格式是:数据类型 变量2 =(数据类型)变量1、数据
int a =20;
byte b =(byte) a;
(3)注意:强制类型转换在计算机中的执行原理
注意事项:
1.强制类型转换可能造成数据(丢失)溢出。
2.浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。