C语言中float和double的问题。

问题如图所示,急求详解。谢谢。... 问题如图所示,急求详解。谢谢。 展开
 我来答
天河流纹石
2013-07-17 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6624万
展开全部
这样验证没有问题。

有效位数并不是整数,一定是6位或一定是7位。实际上,它可能是 2 的某个次方分之一。
所以,它并不是10的整数倍分之一。
32位单精度:M段是23位,则精度为:1/2^23 = 0.0000001192092895
精度大致为 7 位
64位单精度:M段是52位,则精度为:1/2^52 = 2.2204460492503e-16
精度大致为 16 位
书上说,6-7位,15到16位,只是大概范围,并不表示在不同电脑上有差别。

如果你有兴趣,可以了解一下 IEEE 浮点数的规则。S,E,M 三段,其中 M 段的位数,表示了其精度。S是符号位,E是指数位。

至于数据类型的精度,其主要与你的平台有关。Win32 平台下,如果使用IEEE浮点数的编译器,编译出来的程序,其精度就是书上所说。
某些编译器可能可以设置为 IBM 浮点数规则。或者某些平台是 64 位的,那么某些 64 位编译器可能支持更长的数据类型,其精度可能会有所提高。
更多追问追答
追问
那上述我的结果显示的,我的电脑的这个系统的配置,用这款软件。float 和 double 的有效数分别是几位呢?就“仅”根据我的结果来看。
追答
请认真看我列出的式子。
276506968
2013-07-17 · TA获得超过777个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:79.8万
展开全部
您好,首先说明我自己的水平也是半斤八两,这问题也引起了我的思考。我自己的思路是这样的。

分配多少内存还有表示数值这方面,是在编译的时候设定的,也就是编译器不同,表示也不一样,有可能编译器都遵循同一个标准。

其次,32位系统和64位系统在表示的范围和精度上面是不一样的。而装软件的时候也有32位版本和64位版本的区别。所以编译器也是一个软件,也会有区别。

不知道这样思考有没有错,非常荣幸能和楼主讨论学习。
追问
那上述我的结果显示的,我的电脑的这个系统的配置,用这款软件。float 和 double 的有效数分别是几位呢?就“仅”根据我的结果来看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盗墓者fgh
2013-07-17 · 超过11用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:29.2万
展开全部
  1. 是对的。不过你要多试几组数,它的精确度不是固定的。

  2. 其他方法应该都是大同小异。

  3. 和编译器有关。正常情况下float 6~7 位,double 15~16 位,但你可以通过编译器开关让它把float全部处理为 double。

更多追问追答
追问
那上述我的结果显示的,我的电脑的这个系统的配置,用这款软件。float 和 double 的有效数分别是几位呢?就“仅”根据我的结果来看。
追答
float 6~7位,double 15~16 位。具体值会根据你赋的数值而浮动。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小兆86
2013-07-17 · TA获得超过802个赞
知道小有建树答主
回答量:990
采纳率:25%
帮助的人:858万
展开全部
开发环境软件就显示了这么几位。有些小数位数很长的数只显示了前边的几位,后面的被四舍五入了。
追问
那上述我的结果显示的,我的电脑的这个系统的配置,用这款软件。float 和 double 的有效数分别是几位呢?就“仅”根据我的结果来看。
追答
就“有效”这个词的意义来说,最后一个数字不在有效的范围内,最后一个数字之前的都是有效位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一路清晨503
2013-07-17 · TA获得超过228个赞
知道小有建树答主
回答量:413
采纳率:100%
帮助的人:249万
展开全部
和电脑cpu的位数相关的,64位和32位计算机不同的
更多追问追答
追问
那上述我的结果显示的,我的电脑的这个系统的配置,用这款软件。float 和 double 的有效数分别是几位呢?就“仅”根据我的结果来看。
追答
目测你的是32位机器啊,double占8个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式