| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1106 人关注过本帖
标题:请教一个c语言输出printf的问题
只看楼主 加入收藏
gracerun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-9-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:13 
请教一个c语言输出printf的问题
#include<stdio.h>
main()
{
float f=123.456;
printf("%f\n",f);
}
就这样简单的程序,我电脑输出结果为123.456001

最后一位按道理应该是0,但我的输出最后位是1

有没有人能给我讲解一下原因?
搜索更多相关主题的帖子: c语言 
2013-09-15 10:10
情.难言ゝ
Rank: 3Rank: 3
来 自:安徽安庆
等 级:论坛游侠
威 望:1
帖 子:74
专家分:137
注 册:2013-9-8
收藏
得分:2 
因为float型的有效数字是6-7位,所有123.4560是准确的,后面的01是不准确的。。。。。

树叶的离去,是风的追求、还是树的不挽留???
2013-09-15 10:33
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:2 
书上没有吗??

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-09-15 10:35
gracerun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-9-15
收藏
得分:0 
回复 2楼 情.难言ゝ
谢谢,书上有个例子是错的,所以我才郁闷了
2013-09-15 11:40
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
float的精确值是6到7位
2013-09-15 12:19
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:2 
想有效位数多一点,用double

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-15 12:20
rock超仔
Rank: 2
等 级:论坛游民
帖 子:5
专家分:12
注 册:2013-9-15
收藏
得分:2 
float只有六位小数。没有实际数就自动补零。
2013-09-15 14:53
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
float不能保证可以精确存储一个小数
2013-09-15 15:01
没事学学
Rank: 2
等 级:论坛游民
帖 子:77
专家分:46
注 册:2013-3-28
收藏
得分:2 
float型的储存不是准确数字是个狠狠近似的值  所for(i=1;i<m;i++)  这的M一般都用int  因为近似值有可能大 或小 影响判断结果
2013-09-15 21:12
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
回复 9楼 没事学学
准确
2013-09-15 22:31
快速回复:请教一个c语言输出printf的问题
数据加载中...
 
   



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

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