Java基础_17. 类型转换

本文介绍了Java中的类型转换,包括自动类型转换和强制类型转换。自动类型转换允许从小范围类型向大范围类型赋值,如byte到int,但不允许byte到char。强制类型转换可能造成数据丢失,如将double转为int会丢弃小数部分。在编程时需要注意类型转换可能导致的数据精度损失和潜在错误。
摘要由CSDN通过智能技术生成

 

类型转换分为 自动类型转换 和 强制类型转换.

 

自动类型转换指的是把一个表示数据范围小的 数值 或者 变量 赋值给另一个表示数据范围大的变量,

 

顺着箭头方向能进行自动类型转换.

举了一个例子,double d等于10,10是一个整数,double 是一个浮点数,因为整数能够表示的数据范围是小于浮点数能够表示的数据范围.

数据范围从小到大的流程是如下图,从小到大的这两条线都是可以的.

 

但是byte 和 short 不能直接到char 做自动类型转换,而且这里列出的是7种基本数据类型,都是数值型的类型转换, 布尔是非数值型的, 所以布尔不能参与进来.

通过代码来验证一下自动的转换,首先写上自动类型转换,double d=10,

 

然后编译运行一下,控制台输出了10.0,

 

也就是本身是一个整数10,把它赋值给double类型之后,把10 自动转换为一个浮点数类型,输出的时候带了一个点0.

再来定义byte类型的变量,把一个byte类型的变量赋值给一个short类型的变量,

 

编译一下, 编译没有报错,说明byte 可以向short 进行自动类型转换.

 

int i = b,

 

没报错, 说明byte 可以向int 进行自动类型转换.

 

 

下面试试byte 类型向 字符类型 char 转换.

编译报错了,说不兼容的类型.

写上一个注释.

 

把一个表示数据范围大的 数值 或者 变量 赋值给另一个表示数据范围小的变量,这叫强制类型转换.

举一个例子,88.88是个浮点数,k是个int 类型的整数,在这里加了一个强转,就可以将float 类型强转为int 类型.

写代码来测试一下,先不写强制转换,

 

编译一下,现在编译报错了,说它是不兼容的类型,从double转换到int 可能会有损失, 不行.

 

加上强制类型转换,

 现在编译不报错了,说明 float 类型可以强转为int 类型.

 强转之后,

 

k最终的结果是88.

 强制类型转换做完之后,把小数点后面的数字给弄没有了,那这肯定不合理的, 所以强制类型转换虽然可以做,但是不建议,因为会有数据的丢失.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值