中易网

为什么float数值类型的有效数值范围是

答案:2  悬赏:0  
解决时间 2021-04-17 19:56
为什么float数值类型的有效数值范围是
最佳答案
float的范围为-2^128 ~ +2^128,虽然与long型的字节数大小一样的,但是他可以使用E(就是指数表示法),因而将范围变得就很大。
全部回答
在程序编写的时候,我们会忽略一些细节上的问题,尤其是写java这种高级语言,久而久之,我们会对底层缺乏认识,这也是为什么前段时间会有人说java对学生有害的原因;近段时间在重新温习操作系统,感觉收获颇丰,甚是欣慰;   今天突然发现一个关于float的小问题,若不是仔细回忆,差点就忘记啦,所以来讨论下;   public class floatest{   public static void main(string[] args){   float floatnumbera=1.0;   float floatnumberb=0;   for(int addcount=0;addcount<10;addcount++){   floatnumberb+=0.1;   }   if(floatnumberb==floatnumbera){   system.out.println("equals");   }else{   system.out.println("unequals");   }   }   }   输出的结果却出乎我们意料,是unequals;    原因在于计算机在内存表示float的时候都是有误差的,我们应该想起在内存float的表示形式;   下面引自一边别的文章;   首先说一下原,反,补,移码. 移码其实就等于补码,只是符号相反. 对于正数而言,原,反,补码都一样, 对负数而言,反码除符号位外,在原码的基础上按位取反,补码则在反码的基础之上,在其最低位上加1,要求移码时,仍然是先求补码,再改符号.   浮点数分为float和double,分别占4,8个字节,即32,64位. 我仅以32位的float为例,并附带说double.   在ieee754标准中,规定,float的32位这样分:   符号位(s)   1 阶码(e)   8 尾数(m)   23   这里应该注意三点:   a,阶码是用移码表示的,这里会有一个127的偏移量,它的127相当于0,小于127时为负,大于127时为正,比如:10000001表示指数为129-127=2,表示真值为2^2,而0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
芜湖县一中今年录取分数线
英雄岛武器升级!升到了5级!怎么老是失败啊
现在QQ空间抢车位 怎么无法开通啦
Ramaxel内存是金士顿品牌的吗?
经营者义务中与消费者的监督批评权或质询权想
5岁的小女孩尿频什么原因
两个月宝宝吃手怎么回事
织梦后台不能更新栏目。
求一热血江湖激活码
暖气进水口人出水口凉怎么放水?
一汽马自达呼伦贝尔融合店怎么去啊,我要去那
为什么人长大了就会有烦恼?
小张成立了一个公司 ,是卖保健品的 现在他想
腾冲琥珀批发市场在哪里
许昌有多少人口?
推荐资讯
什么桌面的特效能在所有应用里面使用?
女朋友的父母不同意我,因为我是外地的!
师宗五龙乡到罗平县城有多少公里
大豆搅拌加什么可以减免肚子胀气
15盆红花摆成一排,左边2盆红花中间摆一盆黄
这个是什么草?带倒刺
仙人球花语是什么?男生送女生有什么特殊含意
普利司通轮胎价格 195 60 15 多少钱一条呢?
崇左市江州镇财政所地址在什么地方,想过去办
为什么手机app和小米路由器无法绑定?
请诸位行家推荐一款本本
QQ校友怎么在核审时加人
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?