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

 

Здравствуйте!

Не могу понять, в чем ошибка и как исправить:

long V1 = iVolume(NULL,0,1);
long V2 = iVolume(NULL,0,2);
long V3 = iVolume(NULL,0,3);
long V4 = iVolume(NULL,0,4); 
     
  double pr = V1/V4; Alert("pr =",pr);

при компиляции пишет possible loss of data due to type conversion, а что делать, не знаю. Алерт выдает 0.


 
novic #:

Здравствуйте!

Не могу понять, в чем ошибка и как исправить:

при компиляции пишет possible loss of data due to type conversion, а что делать, не знаю. Алерт выдает 0.


ссылка же правильная, приведение типов. Что бы не было предупреждения надо из лонга сделать дабл.

double pr = double (V1/V4); Alert("pr =",pr," V1 ",V1," V4 ",V1); // для полноты понимания выводите все переменные

double pr = (double) (V1/V4); // или так можно, в доках есть примеры
 
novic #:

Здравствуйте!

Не могу понять, в чем ошибка и как исправить:

при компиляции пишет possible loss of data due to type conversion, а что делать, не знаю. Алерт выдает 0.


long целочисленный тип переменной, и хорошо еще обнулять его сперва, прежде чем удастся получить нужный бар

 
Valeriy Yastremskiy #:

ссылка же правильная, приведение типов. Что бы не было предупреждения надо из лонга сделать дабл.

на все ваши варианты выдает алерт pr=0.0
 

справка не дает варианта из лонга в дабл.

 
novic #:

справка не дает варианта из лонга в дабл.

смотрите в справке возможные варианты преображения, т.е. с большей-> в меньшую допустимы

 
lynxntech #:

long целочисленный тип переменной, и хорошо еще обнулять его сперва, прежде чем удастся получить нужный бар

как обнулить тип переменной?
 
novic #:
как обнулить тип переменной?

задать переменную и присвоить ей фиксированное значение 0 или любое другое, а потом уже получать нужные данные, и если ошибка то можно ее через принт например, легко определить

 
lynxntech #:

смотрите в справке возможные варианты преображения, т.е. с большей-> в меньшую допустимы

из справки. https://www.mql5.com/ru/docs/img/casting.png
 
novic #:

Здравствуйте!

Не могу понять, в чем ошибка и как исправить:

при компиляции пишет possible loss of data due to type conversion, а что делать, не знаю. Алерт выдает 0.


double pr = double (V1)/double(V4); Alert("pr =",pr," V1 ",V1," V4 ",V1); // Так правильней. В верхних ошибка, 
// целочисленные деления которые меньше единицы дадут ноль.
int i = 3; int h = 1;
Alert (h/i);
Причина обращения: