![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Нет. Я не понимаю почему функция выдающая результат как дабл, не переводит передаваемые ей аргументы (или прописанные) в тот же дабл? Почему у неё внутри 54/100 == 0 ?
Почему у неё внутри 54/100 == 0 ?
Сереж, тут получается, что преобразование происходит ещё до функции MathRound. Поскольку 54 это int, то результат деления тоже становится int. А уж затем всё это дело попадает в функцию.
Если было бы так: 54.0/100, то был бы duoble.
Вспомните, как учили таблицу умножения. Вместо понимания многие вещи надо просто учить наизусть.
Таблица тут не при чём.
Почему функция
при вызове с аргументами 54, 100 - выдаёт ответ 0 ??? Это утрировано, но по начальному вопросу именно так и получается...
Сереж, тут получается, что преобразование происходит ещё до функции MathRound. Поскольку 54 это int, то результат деления тоже становится int. А уж затем всё это дело попадает в функцию.
Если было бы так, то был бы duoble: 54.0/100.
Я об этом и говорю! Функция, принимающая даблы и возвращающая дабл, на мой взгляд, должна сама переводить все числа в этот формат.
Возможно, я слишком многого хочу... )))
Так и есть она принимает double, но только там на входе 0.0
54/100=0, поскольку преобразует результат в int.
Затем 0 преобразуется в 0.0 при попадании в функцию.
Короче говоря, всё зависит от типа 54, он здесь музыку заказывает :)
Так и есть она принимает double, но только там на входе 0.0
54/100=0, поскольку преобразует результат в int.
Затем 0 преобразует в 0.0 при попадании в функцию.
Алексей, я это понял ))) Просто хотелось бы, чтобы компилятор автоматом переписал 54/100 на 54.0/100.0.... Исключительно из соображения, что все аргументы передаваемые в функцию обязаны быть в требуемом формате... Ну, хотелось бы так...
П.С. Кстати, кабы было написано 54/100.0, то результат был бы уже не int )))
либо я чего то не понимаю из вашей дискуссии, либо .. одно из трёх
очень большая просьба - если предлагаете краткий код к обсуждению, то вставляйте его прямо к текст сообщения. А не как вложенный файл.
не принуждайте людей что-то скачать, запустить mt, только чтобы посмотреть и потом удалить
Таблица тут не при чём.
Почему функция
при вызове с аргументами 54, 100 - выдаёт ответ 0 ??? Это утрировано, но по начальному вопросу именно так и получается...
Прежде чем утверждать, проверяйте. Эта штука дала 0.54. Если аргументы разного типа, преобразуется к старшему