Java 中float 、double的精度问题: float 、double取值范围是怎么样计算出来的?

最好是能给出具体的计算步骤~~谢谢~~为什么int型也是占4个字节,但取值范围是那么小的范围,但是float也是占4个字节,取值范围为什么就是那么大的???... 最好是能给出具体的计算步骤~~谢谢~~
为什么int型也是占 4个字节,但取值范围是那么小的范围,
但是float也是占4 个字节,取值范围为什么就是那么大的???
展开
 我来答
百度网友8112784
2013-06-09 · TA获得超过163个赞
知道答主
回答量:147
采纳率:0%
帮助的人:125万
展开全部
float和double都是遵循IEEE754标准的,内存单元里都是划分为三部分的:符号位 阶码 尾数。
其中
float的符号位占一位,阶码为8位,尾数为23位,所以一共四个字节;double的符号位占一位,阶码为11位,尾数52位。符号位为0的话说明是
正的,为1的话说明是负的;阶码就是尾数所要乘以的2的次方数;尾数默认是去掉整数位的1的,也就是说加入尾数序列为01010101(后面还有很多),
那么其实它是1.01010101(后面还有很多)。比如一个float类型的变量,其符号位为0,阶码化成十进制为3,尾数为01000000(后面都是0),那
么这个变量化为十进制的话就是1.25*(2^3)=10。
int类型占四个字节,但是它不是像float那样表示的,int除了符号位之外其他位都是表示数值的,没有表示阶码的,所以它的范围比float小很多。
下面是维基百科上的一点解释,可以参考一下。

http://zh.wikipedia.org/zh-cn/IEEE_754
不清楚的话还是先看看计算机原理的书或者追问,希望有帮助~
帐号已注销
2013-06-09 · TA获得超过1243个赞
知道小有建树答主
回答量:2126
采纳率:55%
帮助的人:675万
展开全部
好好去看看计算机组成原理,浮点数是怎么存储的。。。。。。。。。。
追问
好的··谢谢··
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dongshuai0105
2013-06-09
知道答主
回答量:52
采纳率:0%
帮助的人:14.9万
展开全部
真想知道的话看java底层代码,看懂了你就可以去sun公司了
更多追问追答
追问
呵呵···今天是突然闲着没事,看了一眼C的东西,讲到数据类型这点,突然想看看java方面是不是一样,后来,才弄出来这个float和double精度、取值方位运算的问题的···
呵呵···
追答
这都是java规定的好的,你要想知道的除非看java最底层的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恽俊雅0iN888
2013-06-09 · TA获得超过185个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:200万
展开全部
java 定好的
看看基础书把
追问
都看到 字节、位数、取值运算了,还不算是基础吗??
再基础的书,也只是讲到 取值范围、占位长度,也没有讲解怎么计算的啊···
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式