Пример скрипта
Последние 4 значения будут битые
нормально все. Это просто экспоненциальная запись числа double: 10 в степени минус 6 = 1/1000000 = 0.000001
Print(1+1e-06); // 1.000001 Print(1+1e+06); // 1000001.0 Print(1e-06==0.000001); // true
Совет: не используйте никогда функцию StringToDouble.
Не существует таких ситуаций, где она бы пригодилась для профессионального кода. Числа не должны храниться в стрингах.
DoubleToString можно. Для вывода на экран.
нормально все. Это просто экспоненциальная запись числа double: 10 в степени минус 6 = 1/1000000 = 0.000001
Совет: не используйте никогда функцию StringToDouble.
Не существует таких ситуаций, где она бы пригодилась для профессионального кода. Числа не должны храниться в стрингах.
DoubleToString можно. Для вывода на экран.
Николай, вы не правы. Вот пример:
Надо задать переменное количество чисел во входящие параметры советника. Может быть 2 и может быть 7… и никто не знает сколько вбредёт в голову пользователю.
Выход:
sinput string Indents = "0.3,0.6"; // Проценты через запятую double arrIndent[];
и в OnInit() преобразование в double массив
string strIndents[]; StringSplit(Indents, ',', strIndents); ArrayResize(arrIndent, ArraySize(strIndents)); int d = 0; while(ArraySize(strIndents)-d > 0 && !IsStopped()) { arrIndent[d] = StringToDouble(strIndents[d]); d++; }
Николай, вы не правы. Вот пример:
Надо задать переменное количество чисел во входящие параметры советника. Может быть 2 и может быть 7… и никто не знает сколько вбредёт в голову пользователю.
Выход:
и в OnInit() преобразование в double массив
Разобрался, проблема не в парсинге значений из строки, а в преобразовании в строку через (string)
Чего? Там нет никакой проблемы.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пример скрипта
Последние 4 значения будут битые