Roman, спасибо за ответ..... К сожалению, так и не понял один момент. В Учебнике, https://book.mql4.com/ru/basics/expressions, в разделе "Приведение типов. Вариант 4.1. Вычисляется результат целого типа
и Вариант 4.2. Аналогичная ситуация возникает и в случае, если искать результат в виде значения действительного типа", приведена одна и та же формула, но в одном случае тип переменной F обозначен как int
а во втором примере переменная уже как double
К сожалению так и не понял логику преобразования. Если в первом варианте вообщем-то понятно почему почему переменной F присваивается int (т.е. согласно правилу неявного приведения типов), то вот почему во втором варианте присвоили double.... совершенно меня запутало.
Пожалуйста, поясните, что я здесь возможно упустил в объяснениях?
Заранее спасибо.
Ну там разбираются достаточно сложные вещи описывающие особенности работы компилятора которые на практике нафиг не нужны. Их благополучно можно пропустить.
Единственное что нужно вынести оттуда это
если в выражении содержатся операнды разных типов, то тип выражения преобразовывается в тип, имеющий более высокий приоритет; типы int, bool, color и datetime имеют одинаковый приоритет, тип double - более высокий приоритет, тип string - самый высокий приоритет;
если тип выражения справа от знака операции присвоения не совпадает с типом переменной слева от знака операции присвоения, то значение выражения приводится к типу переменной слева от знака операции присвоения; это называется приведением к целевому типу;
приведение значений типа string к любому другому целевому типу запрещено.
Что касается примеров просто пропишите типы
int = double + int (Все что хотели сказать, это то что int справа от плюсика преобразуется в дабл, затем операнды суммируются, а затем результат преобразуются к типу присваиваемой переменной).
double = double + int (примерно то же самое, только без последнего преобразования, double сразу присваивается)
Ребята, что означает #INF - это выход за допустимые пределы диапазона double? см. вторую строчку сверху (там считается произведение double TWR, а именно предыдущее ее значение умножается на последующее). Как правильно считать ТАКИЕ значения, принимаемые переменной TWR?
Интересно. А вместо баланса тоже может когда-нибудь появится надпись #INF?? :) :) :)
Ребята, что означает #INF - это выход за допустимые пределы диапазона double? см. вторую строчку сверху (там считается произведение double TWR, а именно предыдущее ее значение умножается на последующее). Как правильно считать ТАКИЕ значения, принимаемые переменной TWR?
inf это infinity... лечится только уменьшением аппетитов, значения TWR слишком большие.
Roman, спасибо за ответ..... К сожалению, так и не понял один момент. В Учебнике, https://book.mql4.com/ru/basics/expressions, в разделе "Приведение типов. Вариант 4.1. Вычисляется результат целого типа
и Вариант 4.2. Аналогичная ситуация возникает и в случае, если искать результат в виде значения действительного типа", приведена одна и та же формула, но в одном случае тип переменной F обозначен как int
а во втором примере переменная уже как double
К сожалению так и не понял логику преобразования. Если в первом варианте вообщем-то понятно почему почему переменной F присваивается int (т.е. согласно правилу неявного приведения типов), то вот почему во втором варианте присвоили double.... совершенно меня запутало.
Пожалуйста, поясните, что я здесь возможно упустил в объяснениях?
Заранее спасибо.
Ну там разбираются достаточно сложные вещи описывающие особенности работы компилятора которые на практике нафиг не нужны. Их благополучно можно пропустить.
Единственное что нужно вынести оттуда это
Что касается примеров просто пропишите типы
int = double + int (Все что хотели сказать, это то что int справа от плюсика преобразуется в дабл, затем операнды суммируются, а затем результат преобразуются к типу присваиваемой переменной).
double = double + int (примерно то же самое, только без последнего преобразования, double сразу присваивается)
Ребята, что означает #INF - это выход за допустимые пределы диапазона double? см. вторую строчку сверху (там считается произведение double TWR, а именно предыдущее ее значение умножается на последующее). Как правильно считать ТАКИЕ значения, принимаемые переменной TWR?
Интересно. А вместо баланса тоже может когда-нибудь появится надпись #INF?? :) :) :)
Ребята, что означает #INF - это выход за допустимые пределы диапазона double? см. вторую строчку сверху (там считается произведение double TWR, а именно предыдущее ее значение умножается на последующее). Как правильно считать ТАКИЕ значения, принимаемые переменной TWR?
inf это infinity... лечится только уменьшением аппетитов, значения TWR слишком большие.
Да ладно Вам?
Некоторые Умники гору не обходят, а идут, наоборот, только в гору и в гору! :)))))
Интересно. А вместо баланса тоже может когда-нибудь появится надпись #INF?? :) :) :)
Не смешно. Уж лучше что по делу...
inf это infinity... лечится только уменьшением аппетитов, значения TWR слишком большие.
А как быть?
см. здесь - там все верно, все по книжке... Все аппетиты - строго соответствуют метОде Р.Винса.
Не смешно. Уж лучше что по делу...
Я написал Своё предложение на предыдущей странице.
А как быть?
см. здесь - там все верно, все по книжке... Все аппетиты - строго соответствуют метОде Р.Винса.
Может на недельке подумаю как лучше сделать. Но занят своей задачкой большую часть свободного времени.
Может на недельке подумаю как лучше сделать. Но занят своей задачкой большую часть свободного времени.
Благодарю, Виктор.
Я написал Своё предложение на предыдущей странице.
Извиняйте, не заметил... :-)))
Проверял несколько раз - ошибок нет все строго по формулам.
Надо, видимо, как то произведение разбить на части и уже потом их сравнивать... Подробнее - здесь.