java——数据类型转换

java——数据类型转换

自动转换

范围小的储存到范围大的

  • byte—>short—>int—>long—>float—>double
    byte a=2;
    short b=a;
    int c=b;
    long d=c;
    float e=d;
    double f=e;
  • 这些从小到大的准换不会出现任何风险(就像容量小的杯子装的再满也总能放到比他容量大的杯子中)

强制类型转换

范围大的存储到范围小的 (若范围大的值超出小的范围,那就会出现数据丢失)

  • 小类型=(小类型)大类型;
  1. 大类型的值在小类型的取值范围内,不会出现数据异常

    short s=10;
    byte b=(byte)s;//10
    
  2. 大类型的值不在小类型的取值范围内,会出现数据异常

    short s3=129;
    byte b3 = (byte) s3;
    System.out.println("b3: "+b3);//-127
    
  3. 小数转成整数时,会直接舍弃小数位,极有可能出现数据丢失

    double d=5.9;
    int n=(int) d;
    System.out.println("n: "+n);//5
    

    小数转整数三种方式

       var n = 5.54321;
       int n1 = (int)n;
       System.out.println(n1);	//5	只保留整数
       //保留整数部分 并四舍五入	
       System.out.println(Math.round(n));	//6 	函数
       System.out.printf("%.0f%n",n);	//6		格式化
    
  4. 由于char类型没有负数取值,所有其他类型转为char时都需要进行类型强转

    byte byte1=97;
    char char1=(char) byte1;
    
  1. boolean类型不参与数据类型转换

  2. 任意数据加上双引号或者拼接双引号都会变成String类型

    		String string1=byte1+"";
            String string2=""+byte1;
            String string3="100";																						
            String string4= 5+6+"a" ;
            System.out.println(string4);//11a
            String string5= 5+"a"+6 ;
            System.out.println(string5);//5a6
            String string6= "a"+5+6 ;
            System.out.println(string6);//a56
    

自动类型提升

发生在数学运算时,当有大类型参与时,会触发类型提升,最终结果将被提升为大类型

最多提升为double,最少提升为int

 int num=10;
 num=num+1;
 //num=num+0.5;//int+double
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值