Java学习【3】自动转换总结,整型字面量与浮点型字面量的差异(猜想未证实)

本文探讨了Java中不同数据类型之间的自动转换规则,特别是整型字面量与浮点型字面量在转换时的差异。总结指出,整型字面量在不超过变量表示范围时可直接赋值,但双精度字面量不能赋值给单精度变量,即使在范围内。此外,整型字面量可直接赋值给浮点型变量,反之则不行。同时,强制转换后的字面量赋值给小容量类型变量的行为并不总是错误,这取决于编译器如何判断。
摘要由CSDN通过智能技术生成

JAVA中,char(两字节)  short(两字节) byte(一字节) 这三者之间,只有byte->short可以自动转型,其他方向都是不会自动转的

虽然按照惯例,容量大的不能自动转换为容量小的,下面的程序会报错:

但是下面则正确编译了(整形字面量类型为int)

编译器发现右边是字面量而不是变量时,会判断一下是否超过了byte的表示范围,如果没有的话就不会出错

正如前言,以下程序也是正确的

但是,下面的程序却是错误的(小数字面量类行是double)

1.1并没有超过float的表示范围,却被判定无法自动转换

这是因为前面的例子都是整型,在不超过表示范围的情况下发生这种转换是安全的

而浮点型存在【精确度】的问题

double类型的字面量,虽然没有超出float的表示范围,在转换后仍旧会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值