java中类型转换问题?? java中long是占8个字节,float占4个字节。哪么 long a=12345665; float b=a;确不需要强制转换。 为什么呢 ??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为java规定 在简单数据类型由低级到高级分别为(byte,short,char)--int--long--float--doublefloat虽然所占空间小 但是能表示的范围很大 所以不需强制转换 1.long a=12345665;java中整数默认是int型而int型是4个字节范围从-2147483648 到 2147483647你的12345665是在int型范围内另外,long是8字节,范围比int大,所以int能表示的数字long肯定能表示这样的情况下,不需要转换,java中也叫“隐式转换”2.float b=a;上面说了,a这个值实际上是在int范围内的而int,float都是4字节的所以,即便a被隐式转换为了long型,但由于实际数值还是在float范围内,所以不需要转换但是如果下面的情况,就不行了byte b = a ;编译器会说:Type mismatch: cannot convert from long to byte JAVA里的7个数据类型之间的转化,分为自动类型转化和强制类型转化。正如2楼所说,表述范围小的可以想表述范围大的进行自动类型转化: byte->short->int->long->float->double或者是char->int-------->long->float->double 这两种形式都可以进行自动类型转化,这是JAVA里边规定的。就如楼主上边所说,虽然 float b = a ;但是输出结果是不一样的 是a.0 如果要是占位多的话 ,他可以直接自动截断的。 求教线程同步问题? 求救SWING自定义按钮 初学者请教该如何实现下面的图形? 如何定义长整数类型 简单问题:如何创建全局对象? 上午发的贴子怎么被删掉了...?????!!!! 求助关于jdbc连接sql server的配置问题? Java下能用指针变量吗? 什么是可序列化 谁可以告诉我《Java Example in a Nutshell》哪里可以下载?谢谢,急用 java 波浪线表示什么 一个继承问题
(byte,short,char)--int--long--float--double
float虽然所占空间小 但是能表示的范围很大 所以不需强制转换
1.long a=12345665;
java中整数默认是int型
而int型是4个字节
范围从-2147483648 到 2147483647
你的12345665是在int型范围内另外,long是8字节,范围比int大,所以int能表示的数字long肯定能表示
这样的情况下,不需要转换,java中也叫“隐式转换”2.float b=a;
上面说了,a这个值实际上是在int范围内的
而int,float都是4字节的
所以,即便a被隐式转换为了long型,但由于实际数值还是在float范围内,所以不需要转换但是
如果下面的情况,就不行了
byte b = a ;
编译器会说:Type mismatch: cannot convert from long to byte