浮点数精度问题,怎么才能保证累加不出现误差
#include <stdio.h>#include <conio.h>
main()
{
float x,y;
for(x=0.0;x<71.0;x=x+0.1)
for(y=0.0;y<71.0;y=y+0.1)
{
if(x+y==71.00)
{
printf("%f,%f\n",x,y);
getch();
}
}
getch();
}
运行后为什么只有2个结果。x+y==71 不是应该有很多很多结果吗
改成for(x=0.0;x<71.0;x=x+1) for(y=0.0;y<71.0;y=y+1) 加整数都能正常运行,但加零点几结果就不对了 为什么??
如果确定为浮点数精度问题 要求必须用浮点数 那怎么使用 才能实现x=x+0.1的累加不出现误差,
[ 本帖最后由 q472440947 于 2014-7-14 23:38 编辑 ]