Java变量与运算符------基本数据类型变量间的强制类型转换规则

本文介绍了Java中关于基本数据类型的强制类型转换规则,包括如何将大容量类型转换为小容量类型,以及转换可能带来的精度损失问题。示例代码展示了转换过程及可能的结果,如12.9转换为int后变为12,128转换为byte后因高位截断变成-128。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

变量与运算符------基本数据类型变量间的强制类型转换规则

规则:将取值范围大(或容量大)的类型强制转换为取值范围小(或容量小)的类型

注意:自动类型提升时是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行

/*
	此VariableTest4.java用来测试强制类型转换
*/
/*
	规则:
		1.如果需要将容量大的变量的类型转换为容量小的变量的类型,需要使用强制类型转换
		2.强制类型转换需要使用强转符:().  在()内指明要转换为的数据类型。
		3.强制类型转换过程中,可能导致精度损失。
*/
class VariableTest4{
    public static void main(String[] args){
         double d1 = 12;  //自动类型提升
         
         //int i1 = d1;     编译失败
        
         //强制转换
         int i2 = (int)d1;
         System.out.println(i2);          //输出12
        
         long l1 = 123;
         short s1 = (short)l1;  
         System.out.println(s1);         //输出123
        
         //练习
         int i3 = 12float f1 = i3;    //自动类型提升
         System.out.println(f1);    //输出12.0
        
         float f2 = (float)i3;     //编译可以通过,只不过可以省略()而已
        
        
         //精度损失的例子1:
         double d2 = 12.9;
         int i4 = (int)d2;
         System.out.println(i4);   //编译输出12
        
         //精度损失的例子2:
         int i5 = 128;
         byte b1 = (byte)i5;
         System.out.println(b1);   //编译输出-128     高位截断,最高位由0变为了1,所以为-128  1000 0000
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值