функция возвращает NaN (неопределенное значение) - страница 2

 
Integer >>:

Получается присвоить.

Да, а вот просто double a = NaN, получится ли. Есть же Null, отчего нет NaN. Понятно, что во времена первых редакций стандарта Си, Null тупо приравняли 0, но это же семантически неверно.


А за идею генерации NaN - спасибо. Хоть это и очередные "прыжки через грабли", но должно работать.


Korey >>:

to HideYourRichess

По правилам Си любое численное значение может участвовать в логических операциях
т.к. bool имеет формат целого к нему и приводится перед логическими вычислениями.
MQL в этой части соответствует Си.
Можете использовать все кроме строк
..
а вообще - закусывать надо

P.S. можете убедиться принтом

Да вы что, блин, сговорились сегодня все?! Так! товарищи! те которые с закуской - проходите в сторону.

keekkenen >>:

ну после такого, конечно, я не полезу.. это не переменные, а константы, поэтому им нельзя присваивать значения..

Вопрос читаем ВНИМАТЕЛЬНО.

 
HideYourRichess писал(а) >>

А за идею генерации NaN - спасибо. Хоть это и очередные "прыжки через грабли", но должно работать.

Это просто предновогоднее "нечем заняться". Все это неправильно, ищите другой способ без Nan, Null, Inf.

 
Integer >>:

Это просто предновогоднее "нечем заняться". Все это неправильно, ищите другой способ без Nan, Null, Inf.

Не могу согласиться. То что придется искать другие методы решения - это к сожалению становится всё очевиднее, деваться некуда просто. А то, что Nan, Null, Inf должны быть грамотно семантически представлены - тут у нас с вами расхождения.

 

почему то не нашёл константы NaN.

а надо.

 
Andrey Dik #:

почему то не нашёл константы NaN.

а надо.

Почитайте стандарт iee-754. После этого вопрос с константой для NaN полностью отпадет) Заодно и вопросы по поводу сравнения и операция с NaN)

 
Andrey Dik #:

почему то не нашёл константы NaN.

а надо.

Проверить, что переменная NaN очень просто:
If (x != x) Print("x is NaN");
 
Nikolai Semko #:
Проверить, что переменная NaN очень просто:
If (x != x) Print("x is NaN");
Разработчики писали, что это может перестать работать в любой момент
 
Vladimir Simakov #:

Почитайте стандарт iee-754. После этого вопрос с константой для NaN полностью отпадет) Заодно и вопросы по поводу сравнения и операция с NaN)

как сравнивать - умею. есть функция MathClassify ().
 
Andrey Dik #:
как сравнивать - умею. есть функция MathClassify ().
  • Not A Number (NAN) –
    The value NAN is used to represent a value that is an error. This is represented when exponent field is all ones with a zero sign bit or a mantissa that it not 1 followed by zeros. This is a special value that might be used to denote a variable that doesn’t yet hold a value.

Если бы Вы все-таки прочитали стандарт, то поняли бы, что константы для NaN не существует, а все макросы типа NAN из stl c/c++ определяются реализацией.

 
Vladimir Simakov #:
  • Not A Number (NAN) –
    The value NAN is used to represent a value that is an error. This is represented when exponent field is all ones with a zero sign bit or a mantissa that it not 1 followed by zeros. This is a special value that might be used to denote a variable that doesn’t yet hold a value.

Если бы Вы все-таки прочитали стандарт, то поняли бы, что константы для NaN не существует, а все макросы типа NAN из stl c/c++ определяются реализацией.

тут так то MQL5, причем здесь какие то стандарты?

константа в языке может быть системным дифайном, нет? - да, может. так почему бы не ввести системную MQL5-константу?

Причина обращения: