思考long 和 double都是8个字节为什么double范围更大? 您所在的位置:网站首页 double取值范围Java 思考long 和 double都是8个字节为什么double范围更大?

思考long 和 double都是8个字节为什么double范围更大?

2023-10-16 08:15| 来源: 网络整理| 查看: 265

System.out.println(Double.MAX_VALUE); System.out.println(Double.MIN_VALUE); System.out.println(Long.MAX_VALUE); System.out.println(Long.MIN_VALUE); // 结果如下 1.7976931348623157E308 4.9E-324 9223372036854775807 -9223372036854775808

很明显上面的double表示的范围更大,但是我们都知道,double和long的存储字节都是8位,为什么表示的范围大不相同,远远不止是整数和浮点数之间的差距? 在进行了学习之后,我了解到,double与long表示范围的差距是由于存储结构的不同导致的,换句话说我们保存1000这个数,我们long要存储+1000,而double存储的是+1E3,拆开来看,存储一个数**double可以分成三部分,符号位,尾数为,指数位,**也就是用科学计数法来存储,这简单的1000就能看出差距,long存储1000需要符号位和数字位,需要5位而double存储,却只需要3位,同样一个数,double能够用更少的内存存储,所以多余的内存就能存储更多的数,因此double > long 总结:存储结构的差异,导致了double和long的存储字节都是8位,但double表示范围远大于long



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有