Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5 - страница 7
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
по мотивам статьи на хабре: https://habr.com/company/xakep/blog/257897/
толком не проверял, но вроде работает
по мотивам статьи на хабре: https://habr.com/company/xakep/blog/257897/
толком не проверял, но вроде работает
Если выдаст правильный результат числа 0.07 значит работает правильно.
Если выдаст правильный результат числа 0.07 значит работает правильно.
не работает ((((
не работает ((((
И никакой алгоритм работать не будет...
И никакой алгоритм работать не будет...
будет, но проблема в заданной точности и в целесообразности больших вычислительных затрат, число двойной точности можно пересчитать в любой формат: ±знак · (1+мантисса/ 252) × 2порядок − 1023
выделить мантису и порядок не составляет труда, но решать эту задачу в "лоб" не интересно
будет, но проблема в заданной точности и в целесообразности больших вычислительных затрат, число двойной точности можно пересчитать в любой формат: ±знак · (1+мантисса/ 252) × 2порядок − 1023
выделить мантису и порядок не составляет труда, но решать эту задачу в "лоб" не интересно
Если точность будет задана, то во всей этой затее нет никакого смысла. Я уже дал пример, 0.07 имеет два знака после запятой. Но, если попытаться программно посчитать количество знаков, получим штук тринадцать... И 0.07 получено не в результате вычислений, а вводится вручную, даже не через переменную.
Есть еще такой вариант:
Опомнитесь. Это бред, который даже не следует обсуждать всерьез.
У автора просто тотальное непонимание внутреннего устройства double-переменных.
О!
Я не утверждал что всё знаю, лучше скажите в чём ошибка или покажите свой вариант
Вы хотите знать, сколько знаков после запятой определены у каждой переменной типа double в Вашей программе. Это и есть бред. Все переменные типа double имеют одинаковое представление. Представлены они в формате Float - с плавающей точкой. Иногда точка левее, иногда правее - зависит от значения числа. Один миллион и одна миллионная представляются с разной точностью.
Есть еще такой вариант:
не, не прокатит, делал вчера через преобразование типов, вот скрипт, Ваш пример и мой:
результаты:
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. DoubleToDigits() = 11
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. Digit() = 0
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. DoubleToDigits() = 3
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. Digit() = 3
можно нагуглить FP-Printing-PLDI96.pdf , но сомневаюсь, что кто то сделает все по алгоритму