2016-04-24 13 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)); 
} 

Grüße an alle in diesem Forum.Ich kann nicht finden und beheben Sie die Warnung in meinem Code

So. Ich erhalte eine Warnung vom Compiler, die darauf hinweist, dass ein Datenverlust möglich ist, weil es eine Konvertierung von int in float gibt.

ich verwirrt, weil alle Variablen, die in meinem Code sind ganze Zahlen (posx, Sträußchen und lado), wobei „lado“ gleich 20.

habe ich sogar eine static_cast die Warnung zu verhindern, aber Es ist immernoch da.

Wenn mir jemand bei diesem Problem helfen kann, werde ich wirklich zu schätzen es

Antwort

0

Die Graphics.DrawString Methode zwei Float-Werte für die x- und y-Parameter nimmt. Versuchen Sie folgendes:

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

Bitte beachten Sie, dass die lado/4 Ausdruck könnte einen Präzisionsverlust führen.

Verwandte Themen