| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 841 人关注过本帖
标题:关于float的有效数位问题
只看楼主 加入收藏
你们来抓我呀
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-7-11
结帖率:0
收藏
已结贴  问题点数:10 回复次数:4 
关于float的有效数位问题
程序代码:
#include <stdio.h>
#include <float.h>
int main(void)
{ 
float a;
double b;
a = 5.0 / 13.0;
b = 5.0 / 13.0;
printf("%.6f %.6f\n",a,b);
printf("%.7f %.7f\n",a,b);
printf("%.8f %.8f\n",a,b);
printf("%.12f %.12f\n",a,b);
printf("%d %d\n",FLT_DIG,DBL_DIG);

 


}

我看书上说float的有效数位为6,代码最后一排显示也是6,但我发现无论怎么改a,b的值,最后7位都相同,只有8位的时候,才发生改变,那不是应该说7位有效数位吗?嘻嘻,我新手,求大神教育啊
2013-07-11 00:33
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:5 
直接使用printf("a=%f",a),看看运行界面显示的a的小数点后有多少位就知道float类型的有效数位
是多少了,你那样比较没多大意义

思考赐予新生,时间在于定义
2013-07-11 14:14
你们来抓我呀
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-7-11
收藏
得分:0 
回复 楼主 你们来抓我呀
Float不是默认小数点右边6位吗?但是如果你用%.7f就会变成7位有效数字啊
2013-07-11 15:00
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
对的,使用了"%.7f"的话,就是告诉编译系统,你要指定输出多少位小数,如果单单是"%f",就默认按照float类型指定的位数输出6位

思考赐予新生,时间在于定义
2013-07-11 15:06
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
收藏
得分:5 
%d是整形,%f是单精度。。。float对应的是%f
2013-07-17 11:34
快速回复:关于float的有效数位问题
数据加载中...
 
   



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

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