Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 107

 
здравствуйте! Как мне эффективно изучить MQL? Я не ищу лёгких путей, просто хочу в этом разбираться !Изучаю учебник Ковалёва,смотрю к ним видосы,стараюсь повторять коды ,что прописаны в нём. Но даже при повторении кода с учебника столько ошибок..... . Я понимаю что произошло обновление.Мне говорили что в этом мне может помочь этот сайт, вот я и здесь! И что мне делать? 
 
Может я  спешу!
 
Alexey Kozitsyn:
Распарсить строку по разделителю "."

Не плохая идея...

 

Alexey Viktorov:
Ничего разбирать не надо. Перевод в string только для того чтобы увидеть нормальное число. Для вычислений ничего делать не надо.

Ну, а если есть непреодолимое желание поизвращаться то перевести строку обратно в число StringToDouble() и умножить на _Point с нормализацией до нужного количества знаков, наверное _Digits

В том то и дело, что нужно разобрать строку на 3 числа, преобразовать её в число нельзя - очень большое число оказывается для языка.

Вот пример такого числа

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

 Принтует число 111111111111111104

 
FOTOGRAF14:
Может я  спешу!
А вот это не надо! Спешка нужна только при ловле блох ((с) армейский юмор).
 
-Aleks-:

В том то и дело, что нужно разобрать строку на 3 числа, преобразовать её в число нельзя - очень большое число оказывается для языка.

Вот пример такого числа

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

 Принтует число 111111111111111104

Сказки...
 
Vitalie Postolache:
Сказки...

 

Сами попробуйте.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

 
-Aleks-:

 

Сами попробуйте.

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

Я про "слишком большое число", но  и код тоже некорректен, если уж переводить из формата в формат, то так:

long CalcY=(long)StringToInteger("111111111111111111");
Print ("CalcY=",IntegerToString(CalcY));

То, на что вы там жалуетесь, это не число большое, а глюк вывода в текст.
 

 
Vitalie Postolache:
Я про "слишком большое число"
Слишком большое число для точных вычислений - иначе как объясните ошибку на конце числа?
 
-Aleks-:
Слишком большое число для точных вычислений - иначе как объясните ошибку на конце числа?
выше добавил.
 
Vitalie Postolache:
выше добавил.

Так у меня есть такое пробразование - в long можно строчку загнать, но мне нужен double для вычислений с запятой.

Причина обращения: