浮点数陷阱
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
double i;
for(i=0;i!=10;i=i+0.1)
printf("%.1lf\n",i);
return 0;
}
请问上述代码 运行结果并求原因。
[解决办法]
运行结果就是无限循环,无限输出。原因是浮点数不能这么用,浮点数都是以二进制放入内存,这样不可控;还是用整数比较好。
发布时间: 2013-12-20 00:23:10 作者: rapoo
浮点数陷阱
#include "stdafx.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
double i;
for(i=0;i!=10;i=i+0.1)
printf("%.1lf\n",i);
return 0;
}