猿问

Java基础问题 关于变量强制转换的问题

class TestVeriable{

       public static void main(String[] args){

              long l = 12;

              float f = l;

              System.out.println(f);

        }

}

long不是8字节的吗?为什么转换成4字节的float可以直接通过?不报错

Neil2015
浏览 1262回答 2
2回答

JustWannaHugU

你这样写顶多会发生数据溢出精度失常,但不至于报错int是最通常用的整数类型,通常情况下,一个java整数常量默认的就是int类型,除此之外,如果使用一个巨大的整数常量(超过了int类型的表述范围)java不会自动把这个整数常量当成long类型来处理,如果希望系统把一个整型常量当作long类型来处理,应在这个整数常量后加上L作为后缀所以你举得例子就能解释了,表述范围小的 l 当让能够顺理成章的直接付给另一个表数范围大的float f 了,属于系统的自动类型转换以上,望采纳

雪颲

会丢失精度而已不会报错啊
随时随地看视频慕课网APP

相关分类

Java
我要回答