Ergebnisse runden - 2 Nachkommastellen
-
Hallo,
wie kann ich in Borland C++ Builder runden?? Ich habe verschiedene Editfelder in denen ein Ergebnis einer Formel angezeigt wird. Diese sollen jetzt auf 2 Nachkommastellen gerundet werden. Wie mach ich das?Hier ein Beispiel
void __fastcall Tleistungschubgeschwindigkeit::Button1Click( TObject *Sender) { geschw_k->Text=FloatToStr((StrToFloat(geschwindigkeit->Text) * 360) / 100 ); }Jetzt soll das Ergebnis dieser Rechenformel also auf 2 Nachkommastellen gerundet werden...
Gruß
-JuRa-
-
include <math.h> ... double round(double zahl,int stellen) { double order=pow(10.0,stellen); return (int)(zahl*order+(zahl>0?0.5:-0.5))/order; };
-
Hi,
schau dir mal FormatFloat in der Hilfe an!!!mfg
Tom
-
oder noch besser: FloatToStrF
-
Die geannten Funktionen machen jedoch Fehler beim runden-> siehe hier im Forum
-
ja soweit ich mich erinnern kann runden sie nicht sondern schneiden ab, oder? hab ich mich richtig erinnert?
mfg
Tom
-
Doch sie runden schon, aber bei 3,33333 usw, gib es ärger
-
aso, ok, aber warum Ärger kannst es kurz beschreiben würd mich interessieren.
mfg
Tom
-
Zu den Thema gibt es lange und breite Ausführungen im Internet. Fließkomma berechungen sind per se ungenau.
-
Doch sie runden schon, aber bei 3,33333 usw, gib es ärger
Bei float hat man 8 und bei double 16 signifikante Stellen. Probleme bereiten doch nur die Stellen danach, weil sie sinnfrei nachgeschoben werden.
-
Christian211 schrieb:
Fließkomma berechungen sind per se ungenau.
Genau.
Und was macht deinen Beispielcode genauer als z.B. FloatToStrF?