Целое-не целое определяется по первому числу. 2/3.0=0, а 2.0/3=0.66. Аналогично и умножение - тип результа по первому числу.
От конкретного компилятора тоже зависит. Лучше все явно приводить к типу результата.
Нет, не верно. Если в операции деления или умножения один из операндов double, второй тоже приводится к double, назависимо от того, первый он или второй. Это от компилятора не зависит, это стандарт приведения типов еще в Си, ну и MQL4/5 это правило унаследовал.
Кстати, ТС на заметку. У вас наверняка должен быть варнинг что-то типа "возможное ухудшение точности". Я писал недавно, что ВСЕ варнинги надо убирать. А какой-то пионер уверял, что они не мешают ))
Юрий точно подметил по поводу последовательности вычисления, поэтому лучше скобки ставить. Умножение имеет больший приоритет, чем деление, так что во втором случае, вполне возможно, что компилятор вычисляет таким образом:
Нет, не верно. Если в операции деления или умножения один из операндов double, второй тоже приводится к double, назависимо от того, первый он или второй. Это от компилятора не зависит, это стандарт приведения типов еще в Си, ну и MQL4/5 это правило унаследовал.
Не буду спорить. А книжку по Си смотреть лениво - там это где-то было описано. У меня были такие фишки, когда одно из чисел было целым и выражение считалось неправильно. Теперь везде пишу вместо 3 -> 3.0 и больше на эту тему не заморачиваюсь. И не хочется.))
Yuriy Asaulenko: Не буду спорить. А книжку по Си смотреть лениво - там это где-то было описано. У меня были такие фишки, когда одно из чисел было целым и считалось неправильно. Теперь везде пишу вместо 3 -> 3.0 и больше на эту тему не заморачиваюсь. И не хочется.))
И правильно, если есть какие-то сомнения с приведением типов, лучше перестраховаться. Тем более, теперь даже в MQL4 можно явно привести тип к другому.
Да уже где-то год, как ввели из пятерки явное приведение. И сразу отвечу на следующий пост. Если есть сомнения - ставьте скобки, компилятору скобки не помеха, а вам будет яснее и спокойнее.
Да уже где-то год, как ввели из пятерки явное приведение. И сразу отвечу на следующий пост. Если есть сомнения - ставьте скобки, компилятору скобки не помеха, а вам будет яснее и спокойнее.
prostotrader напишите. Его тема. Этот Ваш ответ он может и пропустить, как не ему адресованный.
s_price = 0.0 - это чуть-чуть????
(см. значение переменных в правом нижнем углу скрина)
У вас данные неполные. Могу предположить, что pr_exp НЕ формата double, а например int. Больше гадать не буду, приведите полный код.
Целое-не целое определяется по первому числу. 2/3.0=0, а 2.0/3=0.66. Аналогично и умножение - тип результа по первому числу.
От конкретного компилятора тоже зависит. Лучше все явно приводить к типу результата.
Нет, не верно. Если в операции деления или умножения один из операндов double, второй тоже приводится к double, назависимо от того, первый он или второй. Это от компилятора не зависит, это стандарт приведения типов еще в Си, ну и MQL4/5 это правило унаследовал.
Кстати, ТС на заметку. У вас наверняка должен быть варнинг что-то типа "возможное ухудшение точности". Я писал недавно, что ВСЕ варнинги надо убирать. А какой-то пионер уверял, что они не мешают ))
:) ОК
Юрий точно подметил по поводу последовательности вычисления, поэтому лучше скобки ставить. Умножение имеет больший приоритет, чем деление, так что во втором случае, вполне возможно, что компилятор вычисляет таким образом:
А Вам, если я правильно понял, нужно
Нет, не верно. Если в операции деления или умножения один из операндов double, второй тоже приводится к double, назависимо от того, первый он или второй. Это от компилятора не зависит, это стандарт приведения типов еще в Си, ну и MQL4/5 это правило унаследовал.
Не буду спорить. А книжку по Си смотреть лениво - там это где-то было описано. У меня были такие фишки, когда одно из чисел было целым и считалось неправильно. Теперь везде пишу вместо 3 -> 3.0 и больше на эту тему не заморачиваюсь. И не хочется.))
***И правильно, если есть какие-то сомнения с приведением типов, лучше перестраховаться. Тем более, теперь даже в MQL4 можно явно привести тип к другому.
***И правильно, если есть какие-то сомнения с приведением типов, лучше перестраховаться. Тем более, теперь даже в MQL4 можно явно привести тип к другому.
... поэтому лучше скобки ставить.
Прогресс, однако.))
Да уже где-то год, как ввели из пятерки явное приведение. И сразу отвечу на следующий пост. Если есть сомнения - ставьте скобки, компилятору скобки не помеха, а вам будет яснее и спокойнее.
Да уже где-то год, как ввели из пятерки явное приведение. И сразу отвечу на следующий пост. Если есть сомнения - ставьте скобки, компилятору скобки не помеха, а вам будет яснее и спокойнее.