Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5 - страница 9
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я вообще не про это писал. Идея с приведением дабла к строке, чтоб потом в строке посчитать знаки - это дичь полнейшая. На чем ни делай.
А что такого? Пока этот вариант самый быстрый, самый функциональный, гарантированно правильный. Какие у вас варианты?
Да, мой вариант скорей всего не самый лучший, но так как ранее я ничего не нашёл по этому поводу - это лучшее к чему я самостоятельно додумался, об этом я комментариями выше вам написал, а свой вариант вы так и не предложили
Сравнил вот такие варианты:
Вариант со строкой чуть-чуть быстрее, к тому же он не ограничен 8-ю знаками, как функция d(). Ну и гарантия правильности - подсчет по тому виду как терминал отображает число.
Выбираю вариант с преобразованием в строку.
А что такого? Пока этот вариант самый быстрый, самый функциональный, гарантированно правильный. Какие у вас варианты?
Вы можете назвать хотя бы один случай применения указанного алгоритма?
Вы можете назвать хотя бы один случай применения указанного алгоритма?
Был один случай для торговой панели, что бы в текстовое поле выводить размер лота с правильным количеством знаков после запятой. Это единственный случай.
Был один случай для торговой панели, что бы в текстовое поле выводить размер лота с правильным количеством знаков после запятой. Это единственный случай.
Т.е. он в случае 1 лота выводит "1", а 0.01 лота - "0.01"?
Т.е. он в случае 1 лота выводит "1", а 0.01 лота - "0.01"?
Не совсем так. В зависимости от минимального лота и шага лота. Если минимальный лот 0.01, то 1 отображается как 1.00
Не совсем так. В зависимости от минимального лота и шага лота. Если минимальный лот 0.01, то 1 отображается как 1.00
O.o
Ну так получается, что вы не используете свою функцию, а всё равно выводите что-то вроде DoubleToString(LotSize, <some const value>), нет?
O.o
Ну так получается, что вы не используете свою функцию, а всё равно выводите что-то вроде DoubleToString(LotSize, <some const value>), нет?
Да. Но ведь надо знать, сколько знаков после запятой выводить.
Да. Но ведь надо знать, сколько знаков после запятой выводить.
Т.е. Вы определяете по введенному юзером значению мин.лота (или шага лота), сколько в этом значении цифр после запятой, потом это сохраняете для нормализации будущих значений?
Т.е. Вы определяете по введенному юзером значению мин.лота (или шага лота), сколько в этом значении цифр после запятой, потом это сохраняете для нормализации будущих значений?
Что непонятного? У цены есть Digits(), а у объёма - нет. Вот его таким способом и вычисляют.
А зачем нужен digits объёма? Затем же зачем и digits цены!