Programmieren - alles kontrollieren 4.935 Themen, 20.621 Beiträge

Turbo Pascal - real runden auf 2 Kommastellen

Dau (Anonym) / 3 Antworten / Flachansicht Nickles

Hallo zusammen,
bei Berechnungen sollen die Werte nach der zweiten Kommastelle (DM-Beträge) abgeschnitten werden.
Für die Ausgabe kein Problem mit write (wert:5:2), aber das Programm rechnet ja mit z.B. 10.3456789 weiter und am Schluss habe ich bei den Pfennigbeträgen öfters Abweichungen um 1 Pfennig.
Ich habe probiert, die Werte zu zerlegen mit trunc/frac und den frac-wert zu konvertieren mit str (frac(wert):0:2, string_dummy), dann passt das auch, aber wenn ich dann mit val (string_dummy, wert) ihn wieder zurück in eine real verwandle, habe ich wieder alle Nachkommastellen da...
Bitte, bitte, ich bin am verzweifeln:
Wie mache ich eine Zuweisung z.B. 123.456789 := 123.45 ?
Und eben so, daß dann auch nur mit 123.45 weitergerechnet wird, nicht mit 123.456789
Danke schon mal im Voraus!

bei Antwort benachrichtigen
andreas (Anonym) Dau (Anonym) „Turbo Pascal - real runden auf 2 Kommastellen“
Optionen

Hi dau!

Es gibt eine einfache Lösung: addiere vor der Ausgabe den "Halben Wert" auf den gerundet werden soll.

Beispiel:

Wenn du auf zwei Stellen runden willst (also auf 0,01 genau), dann addiere 0,005.

Wenn es auf eine Stelle sein soll (also auf 0,1), dann addiere 0,05.

Danach wird richtig gerundet.

Bis denn
Andreas

bei Antwort benachrichtigen