C语言0.0001变成0.0009999999999怎么回事

[复制链接]
查看11 | 回复3 | 2013-2-10 23:42:21 | 显示全部楼层 |阅读模式
浮点数是国际标准格式,这个格式是不精确的,所以,上述现象很正常。0.0001是十进的,转换到了二进制也就不是 0.0001了,可能就是0.000999999999,这是浮点的正常特性...
回复

使用道具 举报

千问 | 2013-2-10 23:42:21 | 显示全部楼层
p的变化 是:p=1.0;循环 p=0.1*p;我们可以抽出来计算:int main(){int a,i;double result=0,x,p;for(p=1.0;p>1e-6;p=0.1*p) printf("%.lf ",p); getch();}输出:1.000000 0.100000 0.010000 0.001...
回复

使用道具 举报

千问 | 2013-2-10 23:42:21 | 显示全部楼层
0.0009999999999就是0,001。没有发现代码有什么问题。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行