java中的double和float类型数据的最大值是怎么算出来的

2025-01-20 19:23:54
推荐回答(2个)
回答1:

float长度值32比特也就是32位,有一位是符号位
第一个bit表示符号位
2-9这8个表示的是2的指数,但是这里有个指数偏移值的概念
剩下的是小数部分

http://www.233.com/JAVA/Instructs/060530/095611815.html
http://zh.wikipedia.org/zh-cn/IEEE_754
这两个加在一起说的就比较明白了

回答2:

java代码定义
public static final float MAX_VALUE = 0x1.fffffeP+127f; // 3.4028235e+38f
public static final double MAX_VALUE = 0x1.fffffffffffffP+1023; // 1.7976931348623157e+308

Float.MAX_VALUE 单精度浮点型数据最大值
Double.MAX_VALUE 双精度浮点型最大值