如果在C中有Else和Floating point Bug

时间:2015-09-08 12:36:03

标签: c

我正在用C编写一个程序。我在这个代码片段中有一个问题。我不明白为什么我的控件永远不会进入LAMBDA = 1并且永远不会打印“我在这里”。请告诉我这段代码有什么问题。有人将此问题标记为重复,但我无法理解之前提出的问题的答案。

    for(LAMBDA=0.05 ; LAMBDA <=1; )   {

    if(LAMBDA == 1) {

    printf("I am here\n");
    sprintf(string,"dist%0.0f.xvg",LAMBDA);
    printf("%f\n",LAMBDA);

     }

    else {

    sprintf(string,"dist%0.2f.xvg",LAMBDA);
    printf("%0.2f\n",LAMBDA);

     }

    fp = fopen (string,"r");

    if(LAMBDA == 0.95)

           LAMBDA += 0.05;

    else

           LAMBDA += 0.1;

    close(fp);

}

0 个答案:

没有答案