标题:程序输出结果跟预期结果不一样,为什么会这样呢?
取消只看楼主
ospf
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-7-9
 问题点数:0 回复次数:3 
程序输出结果跟预期结果不一样,为什么会这样呢?
#include<stdio.h>
int main(void)
{
    float i=1000000.1;
    printf("%f",i*0.01);
    return 0;
}

vc输出结果是10000.001250,为什么不是10000.001呢?
搜索更多相关主题的帖子: 结果 输出 float void 
2008-07-09 00:07
ospf
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-7-9
得分:0 
[bo][un]Rand[/un] 在 2008-7-9 00:40 的发言:[/bo]

精度问题,0.1无法用二进制准确表示,你换成0.25(0.25=2^-2)就可以准确表示,你可以试试。


我觉得应该也是精度问题,但是你说的还是有问题,你看下面的程序,为什么就能正确输出0.00100呢?
#include<stdio.h>

int main(void)
{
    float a=0.1;
    printf("%f",a*0.01);
    return 0;
}
2008-07-09 22:49
ospf
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-7-9
得分:0 
ding yi ge
2008-07-11 20:15
ospf
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-7-9
得分:0 
感谢你的热心,但是我不明白你的意思,能否详细解释一下啊,谢谢!
2008-07-12 09:49



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




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

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