possible loss of data due to type conversion

 

Hello everyone,

I can't seem to fix this warning at the moment. I know its only a warning, but I like to solve it correctly.

The program runs fine atm, just annoying warning.

void ObjectDiscription()
  {   string Label[]={"Labels","Ask","Bid","StochSignal","StochMain","Macd_Signal","Macd_Main","Senkou_Span_A",
      "Senkou_Span_B","Tenkan_Sen","Kijun_Sen","RVI_Signal","RVI_Main","RSI_Close","RSI_Open","Current"};
   NewLabel=0;

      digits=MarketInfo (CurrentSymbol,MODE_DIGITS);
      convertDoubleStr = DoubleToString(digits,0);
      convert          = StringToInteger(convertDoubleStr); //possible loss of data due to type conversion
      
 string TEXT[15];
   
   TEXT[0]  = DoubleToStr (CurrBid,convert);  TEXT[1]  = DoubleToStr (CurrAsk,convert);
   TEXT[2]  = DoubleToStr (StochSignal,5);    TEXT[3]  = DoubleToStr (StochMain,5);
   TEXT[4]  = DoubleToStr (Macd_Signal,5);    TEXT[5]  = DoubleToStr (Macd_Main,5);
   TEXT[6]  = DoubleToStr (Senkou_Span_A,5);  TEXT[7]  = DoubleToStr (Senkou_Span_B,5);
   TEXT[8]  = DoubleToStr (Tenkan_Sen,5);     TEXT[9]  = DoubleToStr (Kijun_Sen,5);
   TEXT[10] = DoubleToStr (RVI_Signal,5);     TEXT[11] = DoubleToStr (RVI_Main,5);
   TEXT[12] = DoubleToStr (RSI_Close,5);      TEXT[13] = DoubleToStr (RSI_Open,5);
   TEXT[14] = CurrentSymbol;
   int Label_X[]={0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,0};
   int Ladel_Y[]={0,0,30,30,60,60,90,90,120,120,150,150,180,180,210,210,230,230};

   for(int SHIFT=0; SHIFT<15; SHIFT++)
     {
      digits=MarketInfo (CurrentSymbol,MODE_DIGITS);
      convertDoubleStr = DoubleToString(digits,0);
      convert          = StringToInteger(convertDoubleStr);  //possible loss of data due to type conversion
      
      NewLabel++; if(NewLabel>15) break;
      ObjectCreate(0,Label[NewLabel],OBJ_LABEL,0,0,0);
      ObjectSetText(Label[NewLabel],TEXT[SHIFT],25,"P",clrWhite);
      ObjectSetInteger(0,Label[NewLabel],OBJPROP_XDISTANCE,Label_X[SHIFT]);
      ObjectSetInteger(0,Label[NewLabel],OBJPROP_YDISTANCE,Ladel_Y[SHIFT]);
     }
  }
 
GrumpyDuckMan:

Hello everyone,

I can't seem to fix this warning at the moment. I know its only a warning, but I like to solve it correctly.

The program runs fine atm, just annoying warning.

You should post a line where the variable "convert" is declared. StringToInteger() returns long. For example if your "convert" is int (int convert) then you can declare it as long (long convert) or you should use: convert = (int) StringToInteger(convertDoubleStr);

 

Instead of your code:

      digits=MarketInfo (CurrentSymbol,MODE_DIGITS);
      convertDoubleStr = DoubleToString(digits,0);
      convert          = StringToInteger(convertDoubleStr);

You can use just this:

uchar convert=(uchar) MarketInfo(CurrentSymbol,MODE_DIGITS);
Reason: