java——隐式转换和强制换行
一、隐式转换
1、常见的隐式转换
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。
类型从小到大关系图:
以下是几个例子:
int a = 105; double b = a; // 105.0
2、byte、short、char的隐式转换
整数默认是int类型,byte、short、char类型数据参与运算均会自动转换为int类型。
byte a = 10, b = 20; byte c = a + b; // 会报错
第三行代码会报错,a和b会自动转换为int类型,计算结果为int,int赋值给byte需要强制转换。
修改为:
byte a = 10, b = 20; byte c = (byte)(a + b); // 或者 byte a = 10, b = 20; int c = a + b;
3、boolean是否可以自动转换?
boolean类型不能与其他基本数据类型相互转换。
二、强制转换
说明:
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
格式:
目标数据类型 变量名 = (目标数据类型)值或者变量;
例子:
double a = 56.8; int b = (int)a; // 56
总结:
- 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入