2016-04-24 9 views
0
void CNodo::DrawWithAnArrow(System::Drawing::Graphics^g, CNodo nd){ 
    g->DrawRectangle(System::Drawing::Pens::Black, posx, posy, lado, lado); 
    System::String ^cadena = contenido.ToString(); 
    System::Drawing::Font ^f = gcnew System::Drawing::Font("Arial", 10); 
    g->DrawString(cadena, f, System::Drawing::Brushes::Black, posx + static_cast<int>(lado/4), posy + static_cast<int>(lado/5)); // warning is in this line 
    g->DrawLine(System::Drawing::Pens::Black, posx + lado, posy + (lado/2), nd.getX(), nd.getY() + (lado/2)); 
} 

このフォーラムの皆様にご挨拶。私のコードで警告を見つけて修正することができません

So.コンパイラからintからfloatへの変換があるため、データが失われる可能性があるという警告が表示されます。

私は私のコード内にあるすべての変数が「ラド」は20

に等しい整数(POSX、POSYとラド)、ですので、私も警告を防ぐためにはstatic_castを使用し混乱してしまいますが、それはまだそこにある。

誰もがこの問題で私を助けることができるならば、私はそれを本当に感謝します

答えて

0

Graphics.DrawString方法は、2つのfloat xの値とyのパラメータを取ります。このお試しください:

static_cast<float>(posx + (lado/4)) 

lado/4式は精度の損失が発生する可能性がありますのでご注意ください。

関連する問題