| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 884 人关注过本帖
标题:这个题的值是多少
只看楼主 加入收藏
菜鸟学电脑
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-11-10
收藏
 问题点数:0 回复次数:7 
这个题的值是多少
大家好,我有个C语言的问题不会,还请大家指教
有个题是这样的
下列程序段正确的输出结果是()
float a=1111111.111;
float b=7777777.777;
float c;
c=a+b;
printf("c=%f",c);
请说明原因  
搜索更多相关主题的帖子: C语言 
2004-11-10 15:22
上海妹妹
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-11-7
收藏
得分:0 

输出结果应该是:c=8888889.000000


我喜欢清新的空气!
2004-11-10 16:07
菜鸟学电脑
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-11-10
收藏
得分:0 

不对啊

结果不是这样的

2004-11-10 16:15
上海妹妹
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2004-11-7
收藏
得分:0 
是阿,那结果该是多少啊?

我喜欢清新的空气!
2004-11-10 16:16
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
收藏
得分:0 

在TC2.0上运行输出结果是:c=8888889.000000

因为单精度变量float只提供7位有效数字,7位以后的只有四舍五入了.


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-11-10 19:08
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

改成printf("c=%7.3f",c);再试试


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-11-10 19:12
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

对于这个问题我们要注意在float类型中的精度只有7位包括好像小数点要占一个精度,他在计算机中存储的时候如果是7位精度不能表示的时候比如上面的a值那么a=1.11111e+006会发生四舍五入。所以最后输出的!!结果中只有小数点前面的是精确的,后面的都是不精确的是随机值!!我的在vc中输出——c=8888889.12500

至于说%m.nf输出格式表示的是输出m个宽度的值,其中小数点占据一个宽度,n表示3位小数占宽度!! 例如%10.3f表示输出的数占据10个宽度其中有3位小数!!但是如果要输出的数值实际宽度超过了m那么 就会按照实际宽度输出!!!


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-11 09:36
h5748135
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-6-28
收藏
得分:0 
2019-06-28 11:02
快速回复:这个题的值是多少
数据加载中...
 
   



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

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