class TestVeriable{ public static void main(String[] args){ long l = 12; float f = l; System.out.println(f); }}long不是8字节的吗?为什么转换成4字节的float可以直接通过?不报错
2 回答
已采纳
JustWannaHugU
TA贡献452条经验 获得超796个赞
你这样写顶多会发生数据溢出精度失常,但不至于报错
int是最通常用的整数类型,通常情况下,一个java整数常量默认的就是int类型,除此之外,如果使用一个巨大的整数常量(超过了int类型的表述范围)java不会自动把这个整数常量当成long类型来处理,如果希望系统把一个整型常量当作long类型来处理,应在这个整数常量后加上L作为后缀
所以你举得例子就能解释了,表述范围小的 l 当让能够顺理成章的直接付给另一个表数范围大的float f 了,属于系统的自动类型转换
以上,望采纳
添加回答
举报
0/150
提交
取消