float和double类型的范围问题

来源:2-7 Java基本数据类型的范围

慕尼黑3413982

2020-12-14 21:13:21

# 具体遇到的问题
请问老师,float和double类型的分别对应32个字节和64个字节,可是它们的范围为什么不是对应的-2^31~2^31-1和-2^63~2^63-1,而是-3.40E+38~3.40E+38和-1.79E+308~1.79E+308呢
# 报错信息的截图

# 相关课程内容截图
http://img.mukewang.com/climg/5fd7642d0922e43806050183.jpg# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

写回答

1回答

好帮手慕阿慧

2020-12-15

同学你好,float和double的范围是由指数的位数来决定的。

float的指数位有8位,而double的指数位有11位。float的指数范围为-128~+127,double的指数范围为-1024~+1023。所以float的范围为-2^128 ~ +2^127,也就是-3.40E+38 ~ +3.40E+38。double的范围为-2^1024 ~ +2^1023,也就是-1.79E+308 ~ +1.79E+308。其中E代表10的幂次,这是科学计数法。

1

0 学习 · 16556 问题

查看课程