double Nan(long bit_value) { struct L { long x; } l; l.x=bit_value; struct D { double x; } d=(D)l; return(d.x); } double QNaN =Nan(0x7FF7000000000000); // QNaNПросто сравнить оператором ==.
fxsaber:
Просто сравнить оператором ==.
Просто сравнить оператором ==.
если бы было можно, я бы не спрашивал :-)
сравнение величин с QNAN всегда false
double Nan(long bit_value) { struct L { long x; } l; l.x=bit_value; struct D { double x; } d=(D)l; return(d.x); } double QNaN =Nan(0x7FF7000000000000); //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- if (QNaN==QNaN) { Alert("QNaN is QNaN"); } else { Alert("Ooops"); } }
Maxim Kuznetsov:
Прикольно, не знал! Ну тогда такесли бы было можно, я бы не спрашивал :-)
сравнение величин с QNAN всегда false
#include <TypeToBytes.mqh> double Nan(long bit_value) { struct L { long x; } l; l.x=bit_value; struct D { double x; } d=(D)l; return(d.x); } double QNaN =Nan(0x7FF7000000000000); void OnStart() { if (_R(QNaN)==QNaN) { Alert("QNaN is QNaN"); } else { Alert("Ooops"); } }
Осталось незамеченным
double QNaN =Nan(0x7FF7000000000000);
Начальное значение глобальной переменной теперь можно объявлять через функцию!
То же самое касается и остальных static-переменных.
Странно, что разработчики про это нововведение умолчали.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть функция double f() которая может вернуть QNaN SNaN и подобные not-a-number индицируя всякие обстоятельства, как можно быстро(и элегантно) выяснить что её результат именно конкретно QNaN ?
пока единственный вариант - через преобразование в long через копирование структур, но это-ж ужас-ужасный :-)