Ответить
16.09.2014, 21:25
Аватар для prt
prt prt вне форума Интересующийся
Регистрация: 14.06.2014 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1

По умолчанию Предупреждение о потере данных

Здравствуйте
При компиляции появляется ошибка
possible loss of data due to type conversion
указывающая на то что в этой строке возможна потеря данных при конвертации
Код:
NormalizeDouble(Price_Cls, MarketInfo(OrderSymbol(), MODE_DIGITS));
по причине MarketInfo(OrderSymbol(), MODE_DIGITS)
Явное приведение данных не привело к результату
Замена на Digits помогает, но по регламенту исполняемой задачи не подходит.
Буду рад помощи.
Благодарен.
17.09.2014, 05:24
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Здравствуйте
При компиляции появляется ошибка
possible loss of data due to type conversion
указывающая на то что в этой строке возможна потеря данных при конвертации
Код:
NormalizeDouble(Price_Cls, MarketInfo(OrderSymbol(), MODE_DIGITS));
по причине MarketInfo(OrderSymbol(), MODE_DIGITS)
Явное приведение данных не привело к результату
Замена на Digits помогает, но по регламенту исполняемой задачи не подходит.
Буду рад помощи.
Благодарен.
Маркетинфо функция дробная. А там надо целочисленные данные. По мнению компилятора дробные данные будут потеряны.
NormalizeDouble(Price_Cls, (int)MarketInfo(OrderSymbol(), MODE_DIGITS));
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
11.06.2015, 11:08
Аватар для Cheldon1970
Cheldon1970 Cheldon1970 вне форума Интересующийся
Регистрация: 21.03.2014 / Сообщений: 6
Поблагодарили 0 раз(а) / Репутация: 1
Доброго времени суток!
Прошу помочь в исправлении предупреждения.
Есть код:
Код:
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;
   datetime _Sec_in_Hour = _Hour*3600;
   datetime _Sec_in_Min  = _Min*60;
   datetime _Ret = _Currently + _Sec_in_Hour + _Sec_in_Min;
   return(_Ret);
   }
В подчеркнутых строках выдает предупреждение: "возможна потеря данных из-за преобразования типов"
11.06.2015, 12:58
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Доброго времени суток!
Прошу помочь в исправлении предупреждения.
Есть код:
Код:
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;
   datetime _Sec_in_Hour = _Hour*3600;
   datetime _Sec_in_Min  = _Min*60;
   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);
11.06.2015, 14:48
Аватар для Cheldon1970
Cheldon1970 Cheldon1970 вне форума Интересующийся
Регистрация: 21.03.2014 / Сообщений: 6
Поблагодарили 0 раз(а) / Репутация: 1
Ну а зачем-же ты входящей переменной присваиваешь тип datetime?
Если уж это так необходимо, то тогда пиши
datetime Sec_in_Hour = (datetime) _Houe*3600;
или
datetime Sec_in_Hour = datetime (_Houe*3600);
Если честно, то я этот код "слизал" на другом сайте. И как на счет присвоенного типа double в верхних строчках?
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 21:00. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO