У меня сегодня тоже string переменные, через раз показывали значение отличное от NULL.
Видать разрабы балуются)
Скорее, отладчик чудит.
Не.. У меня скрипт, который нормально выгрузку данных делал - не отработал. Начал разбираться - наткнулся на фокусы со стринговыми переменными. Отладчик только показывает состояние дел. Это же не квантовая физика, в которой наблюдатель влияет на наблюдаемую систему. )
И еще любопытный момент. Функция NormalizeDouble тоже странно отработала. Вместо того, чтобы округлить до 6 знака, и отрезать хвост, она округлила и хвост, изменив, оставила.
Или оптимизатор. Переменные-то дальше не используются, нафига им что-то реально присваивать?
Не в оптимизаторе дело. Компилировал и с оптимизацией и без нее. Сделал comment после присваивания.
Но сразу ясно было, что не в этом дело. Переменные типа double, int, bool - в скрипте, где есть только присваивание - показываются в отладке корректно. Только string расстраивают.
Не обратил на это внимание срезу. Тут не в округлении дело, а в преобразовании из десятичной дроби в двоичную. Не каждое дробное число десятичной системы счисления может быть представлено дробным числом двойной системы счисления.
Интересные вещи Вы говорите. А вот мануал с Вами не согласен.
NormalizeDouble Округление числа с плавающей точкой до указанной точности. double NormalizeDouble( double value, // нормализуемое число int digits // кол-во знаков после запятой ); Параметры value [in] Величина с плавающей точкой. digits [in] Формат точности, число цифр после десятичной точки (0-8). Возвращаемое значение Значение типа double с заданной точностью.

- www.mql5.com

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день.
Очередной вопрос возник.
Очень захотелось записать число типа double как string. Взял функцию DoubleToString. Прогнал через нее нужное мне число. Стринговая переменная оказалась равна NULL. Удивился.
Попробовал разными способами занести в переменную типа string значения.
Результат теста на скрине.
И еще любопытный момент. Функция NormalizeDouble тоже странно отработала. Вместо того, чтобы округлить до 6 знака, и отрезать хвост, она округлила и хвост, изменив, оставила.