Блог пользователя Los_Angelos_Laycurse

Автор Los_Angelos_Laycurse, 9 лет назад, По-английски

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..

  • Проголосовать: нравится
  • +5
  • Проголосовать: не нравится

»
9 лет назад, # |
Rev. 2   Проголосовать: нравится -15 Проголосовать: не нравится

deleted

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    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 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      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 .