标题:[求助]float
只看楼主
too1998
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-21
 问题点数:0 回复次数:6 
[求助]float

有问题请教
下面是个实型变量的输出例题:
main()
{
float x,y;
double z;
x=123456789.123;
y=-12345.123;
z=-123456789.123;
printf("x=%f,y=%f,z=%f\n",x,y,z);
}
输出结果为:
x=123456792.000000,y=-12345.123000,
z=-123456789.123000

就是这个题啊输出结果我不太明白,说XY的输出结果吧XY是单精度的,有效值位数为6位到7位。
为什么后面的有这么多位啊?

搜索更多相关主题的帖子: float 单精度 变量 输出 
2006-03-21 21:08
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
得分:0 
小数一般保留6位~7位(最后输出结果)   单精度有效位最多7位(储存的基数),显然x 7位以后的数不准确了

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-21 22:01
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
得分:0 

以下是援引谭浩强 <<C程序设计>>第76页的文字:
"%f不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数.应当注意,并非全部数字都是有效数字.单精度实数的有效位数一般为7位"
x=123456792.000000,y=-12345.123000,
z=-123456789.123000 "只有前7位数字是有效数字.千万不要以为打印出来的数字都是有效数字"

2006-03-21 22:08
luo113927
Rank: 1
等 级:新手上路
帖 子:173
专家分:0
注 册:2006-3-15
得分:0 
以下是引用haishanglang在2006-3-21 22:08:00的发言:

以下是援引谭浩强 <<C程序设计>>第76页的文字:
"%f不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数.应当注意,并非全部数字都是有效数字.单精度实数的有效位数一般为7位"
x=123456792.000000,y=-12345.123000,
z=-123456789.123000  "只有前7位数字是有效数字.千万不要以为打印出来的数字都是有效数字"

2006-03-21 23:53
too1998
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-21
得分:0 
各位大哥谢谢了
也就是说保留的7位才是输出结果,后面的是不是随便瞎写也可以啊!
后面的并无实际意义是不是?
2006-03-22 18:35
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
得分:0 

是这样的哦


2006-03-22 19:17
末日恋人
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-3-21
得分:0 
不用我说了...

2006-03-23 10:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-51899-1-1.html




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

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