А попробуйте заменить 7.6753588531137444e-016 на 7.6753588531137444 * e-016
Вы сами попробывали?
Это же произведение с вычитанием.
Необходимо объявить массив такого вида:
static double Mass[] =
...
1. Собственно, по тексту ответ уже дали - нет в MQL типа данных float. Да и не объявление это, а попытка инициализации элементов массива.
2. По контексту: в том же MQL массив - всегда static.
3. Соответственно,- ответ:
double Mass[];
Все.
Вы сами попробывали?
Это же произведение с вычитанием.
Нет, не пробовал. Лень было Метаедитор открывать. Просто зашел сюда https://docs.mql4.com/ru/basis/types/double, подумал, почему бы и нет.:-(
#define E_16 0.00000001*0.00000001 static double Mass[] = { 0.7582593928053335, 7.6753588531137444*E_16, -0.45713134204312378, 3.5379697101544483*E_16, -1.777010969324789*E_16, -0.30473991739945061, 1.3871514416894263*E_16, 0.011580305451895617};Так должно скомпиляться.
Так должно скомпиляться.
Никому оно не должно. Не макрос это (в четверке), а мелкий подхалимаж.
А почему подхалимаж? И почему мелкий? :)
Кстати, - не компиляется. Да и не должно, как показало вскрытие хелпа:
Справочник MQL4 - Основы языка - Переменные - Инициализация переменных >
.... Массивы (в том числе и объявленные на локальном уровне) могут инициализироваться только константами.
Т.е. выражения не вычисляются при компиляции. Вот такой код у меня однако скомпилировался:
double Mass[] = { 0.7582593928053335, 0.0000000000000076753588531137444, -0.45713134204312378, 0.0000000000000035379697101544483, -0.000000000000001777010969324789, -0.30473991739945061, 0.0000000000000013871514416894263, 0.011580305451895617 };
А почему подхалимаж? И почему мелкий? :)
Кстати не компиляется. Да и не должно, как показало вскрытие хелпа:
Справочник MQL4 - Основы языка - Переменные - Инициализация переменных >
.... Массивы (в том числе и объявленные на локальном уровне) могут инициализироваться только константами.
.
Т.е. выражения не вычисляются при компиляции.
Вот такой код у меня однако скомпилировался:
Владимир, при чем тут массивы?
Он (код) не скомпилировался, а вставился (imho). Бодаться будем?
1. Владимир, при чем тут массивы?
2. Бодаться будем?
1. В исходном примере нарисована трудность при инициализации массива. Я добивался работоспособности именно для этого случая. Для остальных проще (имха).
2. Обязательно. :) Вот этот код работает. Проверьте.
double Mass[] = { 0.7582593928053335, 0.00000000000000076753588531137444, -0.45713134204312378, 0.00000000000000035379697101544483, -0.0000000000000001777010969324789, -0.30473991739945061, 0.00000000000000013871514416894263, 0.011580305451895617}; int start() { for(int i=0; i<8; i++) Print(DoubleToStr(Mass[i]*100000000*100000000,8)); return(0); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Необходимо объявить массив такого вида:
static double Mass[] =
{
0.7582593928053335, 7.6753588531137444e-016, -0.45713134204312378, 3.5379697101544483e-016,
-1.777010969324789e-016, -0.30473991739945061, 1.3871514416894263e-016, 0.011580305451895617};
Пишет: ' 7.6753588531137444e' - invalid number ...
Как объявляются значения с буквой e ?