C语言为什么float型数据可以大到3.4*10^38而有效数字只有7位

 我来答
1812573723
推荐于2017-10-02 · TA获得超过2355个赞
知道小有建树答主
回答量:943
采纳率:88%
帮助的人:888万
展开全部
恰好相反,正是因为他的范围可以大到3.4*10^38所以有效数字才只有7位,float作为一个4字节的实数据类型,能存储的信息是有限的,表示范围的大小与表示数字的精度两者是不能兼得的,表示数字范围大,相对的精度就要受损失,如果表示范围小一些,精度就可以增大一点,float类型是综合考虑范围,精度以及运算等因素而定的一个类型。
如果你真的感兴趣,建议了解一下float类型是如何表示一个实数的,追问我也可以,不过如果你只是学C/C++解决一些基础问题,以后不经常用的话,那也没必要关心这些,了解这些其实也没多大意思。
金色潜鸟
2014-11-09 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5712万
展开全部
float型数据 共有2 进制32位, 用指数形式 表示 数的值。
1位:数的正负号位, 24位 2 进制 尾数,7位 2 进制指数,指数最小−126 最大+127
见 IEEE-754 规定。
2进制折算到10进制,有效数字只有7位。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
刘佳辉9958
2014-11-09 · TA获得超过347个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:248万
展开全部
换成double就好了,flotat,小数点是7点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七宗罪1018
2014-11-09 · TA获得超过154个赞
知道答主
回答量:65
采纳率:0%
帮助的人:26.6万
展开全部
只输出了七位吧
追问
对啊,但为什么范围可以那么大?
追答
··········规定,数值更加精确。只能这么回答你了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式