Java的类型转换
Java的基本数据类型包括八种:
整数类型(byte,short,int long)
浮点数类型(double,float)
布尔类型(boolean)
字符类型(char)
类型从小到大依次为:
byte short int long float double
(char)
自动(隐式)类型转换
从小类型到大类型,不需要强制转换符
例如:
int a =5;
double b = a;
此处将int类型变量a的值赋值给double类型变量b,因为是小类型转换成大类型,
int类型变量a的值会自动转换成double类型并赋值给变量b
强制类型转换
从大类型到小类型,需要强制转换符实现强制转换
强制转换符:(需要转换成的类型)变量
double a = 3.1415926;
int b = (int)a;
此处将double类型变量a的值赋值给int类型变量b,因为是大类型转换成小类型,
需要强制转换符先将double类型变量a的值转换成int类型再赋值给int类型变量b 。
关于byte、short、char赋值与强转规则:
-
不参与运算,整数直接量可以直接赋值给byte,short,char,不需要强转。
-
byte、short、char型变量参与运算时,需要强转。例如:
byte b1 = 5;
byte b2 = 3;
byte b3 = (byte)(b1+b2);
b1与b2不参与运算,整数直接量可以直接赋值给byte;参与运算后,b1+b2和的值默认为int类型,
需要强制转换成byte类型再赋值给byte类型变量b3。
注意
强转会带来的精度损失
我就看看看看
浙公网安备 33010602011771号