| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8646 人关注过本帖
标题:float的最大支持不是7位小数么!为什么会出现6位小数?
取消只看楼主 加入收藏
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
结帖率:100%
收藏
 问题点数:0 回复次数:5 
float的最大支持不是7位小数么!为什么会出现6位小数?
#include <stdio.h>
void main()
{
         float a=10.0f;
    float b=4.0f;
    float c=0.0f;

         c=a/b;
    printf("a lank %f feet long can be cut into %f pieces %f feet long.\n",a,b,c);
}
输出结果为:a lank 10.000000 feet long can be cut into 4.000000 pieces 2.500000 feet long.
小数居然是6位!搞不明白!
搜索更多相关主题的帖子: float 小数 
2008-12-12 13:47
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
收藏
得分:0 
回复 第2楼 forever74 的帖子
关键字float 内存占用最大4字节,值的范围+或-3.4E38(7位小数精度)!如果要存入精度为7位的数字,那么应该使用float型的变量!
高手这是书上说的,那书上所说的7位是个什么概念!麻烦指教!谢谢了!
2008-12-12 14:03
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
收藏
得分:0 
哦!那个书讲的倒是能看懂,但是象这样的问题也有不少!如果我把变量转换说明符设置成,%.7f估计就能输出7位的了吧!但是设置成%.8f用float是肯定不行的吧?
只能换成double关键字了吧!只所以生成6位的,是不是可以理解,象你所说的“喜欢”就是默认的意思!
2008-12-12 14:19
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
收藏
得分:0 
果然我的理解错了!我理解的位是小数位的限制应该是-38到+38之间!而不是书上说的7位!现在真搞不懂书上说的7位的意思了!错的离谱了!谢谢74兄的点拨!
2008-12-12 14:27
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
收藏
得分:0 
谢谢7楼!比较抽象能举列子么?呵呵!
2008-12-12 17:24
老刘
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2008-9-25
收藏
得分:0 
明白了,这么多老师教,在不会也真对不起各位前辈了!我现在总结下我的理解:所谓7位有效数,也可以叫做7位精度,就是数能够精确到7位!如:PI==3.1415926!精度为7位吧,如果圆周率继续往后算就算是超出了这个7位:3.1415926XXXXXXXXXXX!X都是垃圾!而FLOAT单精度浮点最支持的就是这个7位的有效数,和我们所算出来的小数位是两个毫无关系的概念?不知道各位老师能否赞同?
另外:希望74兄能给在下留个联系方式!非常荣幸!
2008-12-12 18:01
快速回复:float的最大支持不是7位小数么!为什么会出现6位小数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014403 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved