Los_Angelos_Laycurse's blog

By Los_Angelos_Laycurse, 9 years ago, In English

include<stdio.h>

int main()

{

double x=-1.99999999999999980000;

while(x>-2.0&&x-1==-3.0)
   puts("orz");

return 0;

}

can anybody give some explaination ,thank you..

| Write comment?
»
9 years ago, # |
Rev. 2   Vote: I like it -15 Vote: I do not like it

deleted

  • »
    »
    9 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    I think you misunderstood me: what I mean is for x=-1.99999999999999980000 I want to know the truth of this statement:x>-2.0&&x-1==-3.0 if x==-1.99999999999999980000 how can x-1==-3.0,it should be -2.99999999999999980000 if it has accuracy error and rounding off to -3.00, but why x=-1.99999999999999980000 not rounding to -2.0 but x>-2.0.

    My own machine regard this statement false,but CF compilors regard it as true,I don't why...

    • »
      »
      »
      9 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      aha , sorry for my misunderstanding , i don't know why this happens but i think misof articles about integer and real representation can help you .

      you can find it here .