请问:C语言中关于浮点型数据的问题???

请教各位高手:
谭浩强教材中说float型数据为6~7位有效数值,例:float a=111111.121131;输出为111111.125000;?若float a=11111.121131;输出为111111.121094;
float a=0.123456789;输出为:0.123457;
float a=123.123456789;输出为:123.12459
why???
然后它说其数值范围为-3.4*10E-38~3.4*10E38,是什么意思??
-3.1*10-38是什么意思,难道是-0.0000....34??那-100.123怎么表示???

第1个回答  2010-12-28
实行变量是用有限的存储单元存储的,因此提供的有效数字也是有限的,因此其输出的数字过长将会出现你说描述的结果,其前8位是准确的,后面是随机的数字了。
因存储单元空间有限,不同变量有不同存储单元,其范围也不相同,实型变量范围就是-3.4*10E-38~3.4*10E38。在范围之外就不是实型变量了。谭浩强的书不错可多读几遍。
第2个回答  2010-12-28
简单地说,在计算机内部,浮点数由阶符阶码数符数码组成,比如111111.121131规格化以后是1.11111121131*10^5阶码是5数码是1.11111121131,由于计算机给数据分配的空间是有限的,数码存不下1.11111121131这么多位数,只能确保前7位是正确的,后面的是任意的字符。
同样,阶码能存储的位数也是有限的,所以浮点数能表示的数字也是有限的,介于-3.4*10^-38~3.4*10^38.
更多的内容请楼主看计算机组成原理的浮点表示的相关内容。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网