![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Оригинал был таким
Все константные выражения типа (54 / 100 * 54 + 54) считаются на этапе компиляции.
Было бы странно, если бы было наоборот )) Если заменить числовые константы переменными, будет считаться ведь строго слева направо?
не мпомню точно, но кто-то сказал что можно в ворнинги смотреть на ошибки приведения типов (possible loss of data due to type conversion), говорят #property strict в этом помогает и никогда не использовать полностью константные выражения - для этого есть калькулятор
Наверное бабка в очереди сказала.
1. Варнинги смотреть и исправлять нужно всегда и любые. В любой программерской конторе руки отпилят, если на git-сервер (у нас Хранилище) вывалишь мусор с варнингами.
2. #property strict нужен только в MQL4, он говорит, что надо компилировать код в нормальном стиле, а не в том, что был до МТ4 build 600.
3. Константные выражения никому не мешают - для этого есть компилятор )) (см. пост Рената выше)
Все же уже объяснили. Калькулятор считает в формате double, а у вас в посте #1 расчет в целочисленных константах. Никаких варнингов и не будет, компилятор тут никаких несоответствий не видит.
Все же уже объяснили. Калькулятор считает в формате double, а у вас в посте #1 расчет в целочисленных константах. Никаких варнингов и не будет, компилятор тут никаких несоответствий не видит.
MathRound(
это double!
Всё что внутри должно автоматом переводиться в дабл. А уже результат я привожу к инту. И я точно понимаю что будет с результатом!
это double!
Всё что внутри должно автоматом переводиться в дабл. А уже результат я привожу к инту. И я точно понимаю что будет с результатом!
Если понимаете - зачем разговор?
А затем, что "внутри" всё переводится не в дабл...
А затем, что "внутри" всё переводится не в дабл...
Теперь Вы вся выяснили? А в документации то же самое?
Теперь Вы вся выяснили? А в документации то же самое?
Нет. Я не понимаю почему функция выдающая результат как дабл, не переводит передаваемые ей аргументы (или прописанные) в тот же дабл? Почему у неё внутри 54/100 == 0 ?