Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Precision einstellen bei C++ Windows Anwendung ?

Selecta / 3 Antworten / Baumansicht Nickles

Hi wir haben gerade ein Wahl Programm geschrieben:

cdu++;
ges = ges++;
labelges->Caption=ges;
panelcdu->Width=cdu*200/ges;
panelfdp->Width=fdp*200/ges;
panelgru->Width=gru*200/ges;
panelspd->Width=spd*200/ges;

labelgru->Caption=FloatToStr((gru*200/ges)/2)+ "%"; // Hier
labelfdp->Caption=FloatToStr((fdp*200/ges)/2)+ "%"; // soll
labelcdu->Caption=FloatToStr((cdu*200/ges)/2)+ "%"; // Gerundet
labelspd->Caption=FloatToStr((spd*200/ges)/2)+ "%"; // werden (2 St.)

Der unterste Abschnitt mit den 4 FloatToStr gibt die Prozente in das label aus. Alles ist richtig und klappt, nur leider kommen Zahlen wie: 33,3333333333333333333(...). Leider weiß ich nur wie das mit Precision in der Konsole geht. Möchte gerne (im obigen Falle) gerne 33,33 dort stehen haben. Hoffe ihr versteht mein Problem.

Benutze: Borland C++ Builder 5.0

GreeTz Selecta

bei Antwort benachrichtigen
Borlander Selecta „Precision einstellen bei C++ Windows Anwendung ?“
Optionen

Schau Dir mal die Funktion Format + die Formatstrings an, damit kannst Du die Zahlen wie gewünscht ausgeben...

bei Antwort benachrichtigen
mr.escape Selecta „Precision einstellen bei C++ Windows Anwendung ?“
Optionen
ges = ges++;

So etwas sollte man auf keinen fall machen. Das kann, je nach compiler, einstellungen, etc., mal so und mal so übersetzt werden (ergebnis ausrechnen, postinkrementieren und dann erst wert zuweisen oder ergebnis ausrechnen, wert zuweisen und dann erst postinkrementieren).
Eine zeile oben darüber hat's doch auch wunderbar geklappt.

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
Selecta Nachtrag zu: „Precision einstellen bei C++ Windows Anwendung ?“
Optionen

Ok vielen Dank euch. Werde mal nachschauen.

bei Antwort benachrichtigen