A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

各位大侠,java中的long占8字节,float占4字节,那为什么long类型可以自动转换成float类型呢?

10 个回复

倒序浏览
几率收割 来自手机 中级黑马 2015-6-26 12:57:04
沙发
long2的64小于float10的多少来着不记得了。
回复 使用道具 举报
首先范围上讲float范围要大,另外,float精度要低,用的是幂指数方式表示数值,小数精度为7位。long表示更精确一些,没有估计数值。
回复 使用道具 举报
送你个Test比较一下看看
class Test {
        public static void main(String[] args) {
               
                sop(Long.MAX_VALUE);
                sop((float)Long.MAX_VALUE);
                sop(Float.MAX_VALUE);
        }
       
        public static void sop(Object obj) {
                System.out.println(obj);
        }
}
回复 使用道具 举报
guohaichang 发表于 2015-6-26 13:24
送你个Test比较一下看看
class Test {
        public static void main(String[] args) {

是不是他们存储数据的形式不同呢?
回复 使用道具 举报
悄悄地,拿一个黑马币走人~~~~~~~
回复 使用道具 举报
悄悄地,拿一个黑马币走人~~~~~~~
回复 使用道具 举报
fanxin_meng 发表于 2015-6-26 13:44
是不是他们存储数据的形式不同呢?

是的,float是底数指数的存储形式
回复 使用道具 举报
fanxin_meng 发表于 2015-6-26 13:44
是不是他们存储数据的形式不同呢?

float最大表示e38次密,可见是最后6位表示指数可算出前面数值精度是多少
回复 使用道具 举报
看了答案还是没看懂
回复 使用道具 举报
66
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马