Хелп!!! if выполняется, когда не должен... долбануца...

[Удален]  
void upper()
   {
   double fractalHigher=0, fractalHighest=0, temp=0;
   int a, b;
   for (i=0;i<periods;i++)
      {
      temp=iFractals(Symbol(),Period(),MODE_UPPER, i);
      //temp=NormalizeDouble(temp, 4);
      if (temp>fractalHighest)
         {
         fractalHighest=temp;
         //fractalHighest=NormalizeDouble(fractalHighest, 4);
         a=i;
         }
      }
 
 
    for (i=0;i<periods;i++)
      {
      temp=iFractals(Symbol(),Period(),MODE_UPPER, i);
      //temp=NormalizeDouble(temp, 4);
      if (temp>fractalHigher)
         {
         //Print(temp);
         if(fractalHigher<fractalHighest)
            {
            fractalHigher=temp;
            //fractalHigher=NormalizeDouble(fractalHigher, 4);
            b=i;
            }
         }
      }
 
    Print(fractalHigher, " higher.");
    Print(fractalHighest, " highest.");
   }

Привет всем.
Посмотрите на функцию пжалста. Идея очень простая - найти максимальный фрактал за period периодов, а потом найти второй по величине, и вывести их в Print.
Как ни кручу, в результате две переменные равны максимальному фракталу, хотя значение присваивается только после if, и равны они не могут быть ну никак!
 
не запускал код, но может вместо
if(fractalHigher<fractalHighest)
надо написать
if(temp<fractalHighest)
[Удален]  
Renat:
не запускал код, но может вместо
if(fractalHigher<fractalHighest)
надо написать
if(temp<fractalHighest)


Теперь можно идти спать с чистой совестью :о)
Спасибо!
[Удален]  

а всё-таки... как же они равны получаются, если в if указано неравенство?. ..

[Удален]  

За ночь понял - ведь сравниваю до того, как присваиваю...
Спасибо за внимание :о)