Скачать MetaTrader 5

Операции отношения

Логическое значение ЛОЖЬ представляется целым нулевым значением, а значение ИСТИНА представляется любым ненулевым.

Значением выражений, содержащих операции отношения или логические операции, являются ЛОЖЬ(0) или ИСТИНА(1).

Истина, если a равно b                       a == b;
Истина, если a не равно b                    a != b;
Истина, если a меньше b                      a < b;
Истина, если a больше b                      a > b;
Истина, если a меньше или равно b            a <= b;
Истина, если a больше или равно b            a >= b;

Нельзя сравнивать два вещественных числа на равенство друг другу. В большинстве случаев два вроде бы одинаковых числа могут оказаться неравными из-за разницы значения в 15-ом знаке после запятой. Для корректного сравнения двух вещественных чисел необходимо сравнивать нормализованную разницу этих чисел с нулевым значением.

Пример:

bool CompareDoubles(double number1,double number2)
  {
   if(NormalizeDouble(number1-number2,8)==0) return(true);
   else return(false);
  }
void OnStart()
  {
   double first=0.3;
   double second=3.0;
   double third=second-2.7;
   if(first!=third)
     {
      if(CompareDoubles(first,third))
         printf("%.16f  %.16f   все таки равны",first,third);
     }
  }
// Результат: 0.3000000000000000  0.2999999999999998   все таки равны 

Смотри также

Приоритеты и  порядок операций


Обновлено: 2015.12.03