C语言为什么float型数据可以大到3.4*10^38而有效数字只有7位
4个回答
展开全部
恰好相反,正是因为他的范围可以大到3.4*10^38所以有效数字才只有7位,float作为一个4字节的实数据类型,能存储的信息是有限的,表示范围的大小与表示数字的精度两者是不能兼得的,表示数字范围大,相对的精度就要受损失,如果表示范围小一些,精度就可以增大一点,float类型是综合考虑范围,精度以及运算等因素而定的一个类型。
如果你真的感兴趣,建议了解一下float类型是如何表示一个实数的,追问我也可以,不过如果你只是学C/C++解决一些基础问题,以后不经常用的话,那也没必要关心这些,了解这些其实也没多大意思。
如果你真的感兴趣,建议了解一下float类型是如何表示一个实数的,追问我也可以,不过如果你只是学C/C++解决一些基础问题,以后不经常用的话,那也没必要关心这些,了解这些其实也没多大意思。
展开全部
float型数据 共有2 进制32位, 用指数形式 表示 数的值。
1位:数的正负号位, 24位 2 进制 尾数,7位 2 进制指数,指数最小−126 最大+127
见 IEEE-754 规定。
2进制折算到10进制,有效数字只有7位。
1位:数的正负号位, 24位 2 进制 尾数,7位 2 进制指数,指数最小−126 最大+127
见 IEEE-754 规定。
2进制折算到10进制,有效数字只有7位。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
换成double就好了,flotat,小数点是7点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只输出了七位吧
追问
对啊,但为什么范围可以那么大?
追答
··········规定,数值更加精确。只能这么回答你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询