Files
Hui-s-notebook/logseq-java/pages/强制转换.md
2024-02-02 00:12:49 +08:00

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
    • 参与运算的最高类型为最终运算的结果的类型