842 B
842 B
- 高类型数据转低类型数据不能直接转
- 如果要转换,需要指定转换的数据类型
-
public static void main(String[] args){ int a = 120; byte b = (byte) a; System.out.println(b); }
-
- 数据溢出
- 转换时高数据类型的值超出低数据类型的范围
- 溢出后会从最低值到最高值循环,直到未超出范围
- 精度丢失
- 使用时需考虑风险
- 高类型转低类型时,精度会丢失
- double-->float
- 丢失小数点7位之后的部分
- double/float-->int
- 丢失小数点后的部分
- 使用场景
- 不需要小数点后的数值
- double-->int
- 不需要小数点后的数值
- 自动提升
- 参与运算的整数类型,小于int会自动提升为int类型,int+int为int类型,不能直接转型为byte
- 参与运算的最高类型为最终运算的结果的类型