Wobei "Rundungsfehler" hier garnicht zu vermeiden sind, egal wie groß man den Fließkommadatentyp wählt.
Die Ursache dafür ist aber kein Rundungsfehler sondern eine Speicherungenauigkeit bei Fließkommawerten. Das sind 2 unterschiedliche Dinge und sollte man tunlichst nicht verwechseln.
Mache RohreProKreis := RoundTo(RohreProKreis, -2)
ganz toll...
http://docwiki.embarcadero.com/Libra...m.Math.RoundTo
Du fütterst einen Extended rein, bekommst einen Extended raus. Ändert genau gar nichts. Ok, es mag seht oft ein gerundetes ERgebnis raus kommen, aber es gibt halt auch Werte die hier wieder mit dem Speicherfehler aus der Funktion kommen. (und ja: Ich hatte das Thema schon oft mit Entwicklern die vom Glauben abgefallen sind, weil bei RoundTo hin und wieder eben nicht der auf 2 Stellen genaue Wert raus kommt sondern was anderes).
Wenn Du RoundTo verwendest, dann solltest Du das ganze einem Currency zuweisen (wenn es dir wichtig ist mit genau 2 Nachkommastellen weiter zu rechnen)