c语言,表2-7数值范围那,小括号里精确到6到7位什么意思,±3.4E±38不是很多位吗?,不懂!

 我来答
黑丶雨
2016-08-31 · TA获得超过554个赞
知道小有建树答主
回答量:406
采纳率:80%
帮助的人:396万
展开全部

先握个手,我也是看这个《C语言入门经典》学的C;


你可以把那句话理解成“有效数字6到7位稿族”;意思就是从左到右6个数字是有效的,其他可能正确也可能是个随机值;


你可纳迟以做个试验把3333.3333333...(20个3)分别赋给3个类型(float,键茄弊  double,   long double)的变量,再分别用他们的输出符号 %f  %lf  %Lf(long double好多编译器并不支持) 看看输出结果,你就明白了;


给你两张图,第一张是运行结果,第二张是调试的结果,我的编译器不支持long double,所以没有它的变量,不过你应该能看明白,再不明白就没办法了:


lovedyc1989
2016-08-31 · TA获得超过1043个赞
知道小有建树答主
回答量:2411
采纳率:58%
帮助的人:671万
展开全部
这样能看明白不?者历

2 精度
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它饥嫌启是不变的,故不烂如能对精度造成影响。

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。
追问
你说的我貌似有点明白,但是为什么float的数值范围是±3.4E±38呢,是不是他本来很大,但只能精确到六到七位小数的意思呢?
隐藏的“1”又如何理解呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式