黑马程序员技术交流社区

标题: java中long类型为什么可以自动转换成float类型呢 [打印本页]

作者: fanxin_meng    时间: 2015-6-26 11:37
标题: java中long类型为什么可以自动转换成float类型呢
各位大侠,java中的long占8字节,float占4字节,那为什么long类型可以自动转换成float类型呢?


作者: 几率收割    时间: 2015-6-26 12:57
long2的64小于float10的多少来着不记得了。
作者: guohaichang    时间: 2015-6-26 13:19
首先范围上讲float范围要大,另外,float精度要低,用的是幂指数方式表示数值,小数精度为7位。long表示更精确一些,没有估计数值。
作者: guohaichang    时间: 2015-6-26 13:24
送你个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);
        }
}
作者: fanxin_meng    时间: 2015-6-26 13:44
guohaichang 发表于 2015-6-26 13:24
送你个Test比较一下看看
class Test {
        public static void main(String[] args) {

是不是他们存储数据的形式不同呢?
作者: 张安哲    时间: 2015-6-26 14:58
悄悄地,拿一个黑马币走人~~~~~~~
作者: 怪我咯    时间: 2015-6-26 14:59
悄悄地,拿一个黑马币走人~~~~~~~
作者: guohaichang    时间: 2015-6-26 16:02
fanxin_meng 发表于 2015-6-26 13:44
是不是他们存储数据的形式不同呢?

是的,float是底数指数的存储形式
作者: guohaichang    时间: 2015-6-26 16:04
fanxin_meng 发表于 2015-6-26 13:44
是不是他们存储数据的形式不同呢?

float最大表示e38次密,可见是最后6位表示指数可算出前面数值精度是多少
作者: 帅帅loyal    时间: 2015-6-26 16:27
看了答案还是没看懂
作者: 二五仔    时间: 2016-1-14 22:53
66




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2