Предупреждение о потере данных

  • Автор темы Автор темы prt
  • Дата начала Дата начала

prt

Прохожий
Здравствуйте
При компиляции появляется ошибка
possible loss of data due to type conversion
указывающая на то что в этой строке возможна потеря данных при конвертации
Код:
Expand Collapse Copy
NormalizeDouble(Price_Cls, MarketInfo(OrderSymbol(), MODE_DIGITS));
по причине MarketInfo(OrderSymbol(), MODE_DIGITS)
Явное приведение данных не привело к результату
Замена на Digits помогает, но по регламенту исполняемой задачи не подходит.
Буду рад помощи.
Благодарен.
 

Ugar

Гуру форума
Здравствуйте
При компиляции появляется ошибка
possible loss of data due to type conversion
указывающая на то что в этой строке возможна потеря данных при конвертации
Код:
Expand Collapse Copy
NormalizeDouble(Price_Cls, MarketInfo(OrderSymbol(), MODE_DIGITS));
по причине MarketInfo(OrderSymbol(), MODE_DIGITS)
Явное приведение данных не привело к результату
Замена на Digits помогает, но по регламенту исполняемой задачи не подходит.
Буду рад помощи.
Благодарен.
Маркетинфо функция дробная. А там надо целочисленные данные. По мнению компилятора дробные данные будут потеряны.
NormalizeDouble(Price_Cls, (int)MarketInfo(OrderSymbol(), MODE_DIGITS));
 

Cheldon1970

Прохожий
Доброго времени суток!
Прошу помочь в исправлении предупреждения.
Есть код:
Код:
Expand Collapse Copy
datetime double_in_datatime(double _Use_Time)
   {
   datetime _Currently = iTime(NULL,1440,0);
   double _Hour = MathFloor(_Use_Time);
   double _Min = (_Use_Time - MathFloor(_Use_Time))*100;
   [U]datetime _Sec_in_Hour = _Hour*3600;[/U]
   [U]datetime _Sec_in_Min  = _Min*60;[/U]
   datetime _Ret = _Currently + _Sec_in_Hour + _Sec_in_Min;
   return(_Ret);
   }
В подчеркнутых строках выдает предупреждение: "возможна потеря данных из-за преобразования типов"
 

AlexeyVik

Программист mql4 mql5
Доброго времени суток!
Прошу помочь в исправлении предупреждения.
Есть код:
Код:
Expand Collapse Copy
datetime double_in_datatime(double _Use_Time)
   {
   datetime _Currently = iTime(NULL,1440,0);
   double _Hour = MathFloor(_Use_Time);
   double _Min = (_Use_Time - MathFloor(_Use_Time))*100;
   [U]datetime _Sec_in_Hour = _Hour*3600;[/U]
   [U]datetime _Sec_in_Min  = _Min*60;[/U]
   datetime _Ret = _Currently + _Sec_in_Hour + _Sec_in_Min;
   return(_Ret);
   }
В подчеркнутых строках выдает предупреждение: "возможна потеря данных из-за преобразования типов"
Ну а зачем-же ты входящей переменной присваиваешь тип datetime?
Если уж это так необходимо, то тогда пиши
datetime Sec_in_Hour = (datetime) _Houe*3600;
или
datetime Sec_in_Hour = datetime (_Houe*3600);
 

Cheldon1970

Прохожий
Ну а зачем-же ты входящей переменной присваиваешь тип datetime?
Если уж это так необходимо, то тогда пиши
datetime Sec_in_Hour = (datetime) _Houe*3600;
или
datetime Sec_in_Hour = datetime (_Houe*3600);
Если честно, то я этот код "слизал" на другом сайте. И как на счет присвоенного типа double в верхних строчках?
 
Верх