Die Kurzfassung:
Rundungsdifferenzen sehen Sie in seltenen Fällen, wenn Sie Werte aus ORCA AVA mit von Hand ermittelten Werten oder mit Werten aus Fremdprogrammen vergleichen.
Das liegt meist daran, dass verschiedene Programme verschiedene Datentypen verwenden und eigene Algorithmen zur Berechnung von Werten nutzen. Software-Programmierung ist keine exakte Wissenschaft: es gibt nicht 'den' richtigen Weg, um einen Wert zu ermitteln oder nur einen möglichen Datentyp, der dabei verwendet werden kann.
Zudem sind auch die Beschreibungen von 'neutralen' Datenschnittstellen oft nicht absolut vollständig und eindeutig. Es bleibt ein gewisser Ermessens- oder Interpretations-Spielraum bei der entwicklungstechnischen Umsetzung.
Computer können keine unendlich langen Zahlen speichern - auch wenn es manchmal so scheint! Deshalb existieren verschiedene Datentypen mit unterschiedlich vielen Nachkommastellen, um Berechnungen möglichst genau durchführen zu können.
Aus einer Abwägung von Genauigkeit und 'Performance' (Rechengeschwindigkeit) folgt die Auswahl eines bestimmten Datentyps zum Speichern bestimmter Werte.
Wann treten Rundungsdifferenzen auf?
Die technischen Randbedingungen für Rundungsdifferenzen in ORCA AVA lassen sich klar benennen:
Beispiel:
Ermittlung von Positionsgesamtpreisen, auf Papier berechnet und auf 2 Nachkommastellen gerundet.
Menge (m) |
x EP in EUR |
GP in EUR (gerundet) |
ORCA AVA |
5,982 |
x 21,39 = |
127,95498 (127,95) |
127,96 |
11,464 |
x 56,39 = |
646,45496 (646,45) |
646,46 |
Dieser scheinbare 'Fehler' in ORCA AVA resultiert daraus, dass Rechner keine unendlich langen Zahlen oder Rechenergebnisse speichern können. Es muss immer ein reservierter Speicherplatz (Datentyp) für die Aufnahme einer Zahl oder eines (Zwischen-)Ergebnisses vorhanden sein.
ORCA AVA verwendet den Datentyp 'Currency'. Dieser Datentyp unterstützt 15 Vorkomma- und 4 Nachkommastellen und wird als schneller Datentyp von hoher Genauigkeit für Berechnungen mit Geldbeträgen beschrieben.
Bei den oben genannten Beispielen wird bereits auf Ebene des Datentyps (in den Tiefen des Rechners selbst, ohne dass ORCA AVA das überhaupt mitbekommt!) auf die 4. Nachkommastelle gerundet - einfach weil die Zahl nur mit 4 Nachkommastellen gespeichert werden kann. Dabei wird kaufmännisch (richtig) gerundet:
127,95498 wird zu 127,9550
646,45496 wird zu 646,4550
Da aber dann für den Positionsgesamtpreis EURO mit 2 Nachkommastellen angegeben werden sollen, wird auf die 2. Nachkommastelle (wiederum richtig) kaufmännisch gerundet:
127,9550 wird zu 127,96 EUR
646,4550 wird zu 646,46 EUR
Einheitspreise können Sie in ORCA AVA mit 3 Nachkommastellen angeben. Dies wird auch im Format GAEB XML unterstützt.
Sind technische Rundungsdifferenzen zu vermeiden?
Hier gibt es nur ein klares NEIN! ... man könnte zwar vielleicht spezielle Rundungsdifferenzen vermeiden (durch die Verwendung eines anderen Datentypen), aber man würde dafür andere Rundungsdifferenzen erzeugen (durch die Verwendung dieses anderen Datentypen).
In ORCA AVA werden in rund 400.000 Codezeilen ca. 2.000 Multiplikationen und Divisionen ausgeführt. Eine Umstellung des Datentyps kann zu einer unkalkulierbaren Zahl abweichender Ergebnisse führen, die dann aus Besonderheiten dieses anderen Datentypen resultieren. Beispiel: (1.500.000 / 100) * 81,7 liefert als Gleitkommazahl (single) berechnet den Wert 1.225.499,95422363 gerundet also 1.225.499,95 - exakt berechnet sind es aber 1.225.500,00.
Es würde nicht besser, nur anders. Daher ist eine Umstellung des Datentyps nicht vorgesehen.
Auf-/Abschläge können ebenfalls zu Rundungsdifferenzen führen, besonders, wenn es sich um pauschale Abschläge handelt.
In der gewerkeorientierten Struktur eines Auftrags wird ein pauschaler Abschlag einfach abgezogen. Wenn aber wieder in der Auswertung nach Kostengruppen ein 'bereinigter' Wert ermittelt werden soll, bleibt nur die Möglichkeit, den Aufschlag prozentual auf beteiligte Positionen/Teilmengen umzulegen. Die Rundungsdifferenz im Vergleich von Projekttabelle und zugehöriger KG-Auswertung ist damit so gut wie sicher.
Bei der Auswertung nach Kostengliederungen wird eigentlich nur eine 'Umsortierung' von bestehenden Daten durchgeführt: Aus der gewerkeorientierten Sortierung, z.B. in einem Leistungsverzeichnis, wird anhand der eingetragenen Kostengruppen (bei Positionen oder Teilmengen von Positionen) in die Ordnung der jeweiligen Kostengliederung umsortiert.
Es können Abweichungen zwischen den Summen der Kostengruppen und der Projektsumme auftreten: In der Projektsumme (z.B. AMP) wird für jede Position die Gesamt-Menge mit dem EP multipliziert - in der Auswertung nach Kostengliederungen werden Mengenanteile einer Position mit dem EP multipliziert, gerundet und dann zur KG-Summe addiert.
Beispiel: Kostengruppen-Zuordnungen in Teilmengen
Position Stahlrohre DN 50, Gesamtmenge 20m, je 17,55 EUR = 351,00 EUR ... im Mengensplitting/Kostensplitting aufgeteilt in 2 Kostengruppen:
12,5m in
12,5 x 17,55 = 219,375 - gerundet: 219,38 EUR
7,5m in
7,5 x 17,55 = 131,625 - gerundet: 131,63 EUR
KG-Summe: 351,01 EUR => 0,01 EUR Rundungsdifferenz in der KG-Auswertung.
In der AMP prüfen Sie, was der Auftragnehmer für diese Leistung zu erhalten hat - darum ist der Positionswert der entscheidende. Die Kostengruppenauswertungen sind dagegen 'akademische' Betrachtungen...
Eine weitere Quelle für Rundungsdifferenzen (oder gefühlt-falschen Werten) resultiert aus der Abwägung, ob die Ergebnisse von Spaltenberechnungen einen höheren Stellenwert als die Ergebnisse von Zeilenberechnungen haben, bzw. ob Teilmengen höher zu bewerten sind als Gesamtmengen.
Beispiel
Für eine Position erfassen Sie in der Aufmaßprüfung (AMP) mehrere Teilmengen. Der EP ist 21,39 EUR.
Die Teilmengen werden den Kostengruppen 1, 2 und 3 wie folgt zugeordnet:
Teilmenge AMP |
x EP |
GP in ... |
KG |
Hinweis |
1,697 |
x 21,39 = |
36,30 |
1 |
* Die Summe für diese Position in der KG 2: ... richtig. Wirklich? |
1,400 |
x 21,39 = |
|
2 |
|
1,400 |
x 21,39 = |
|
2 |
|
8,95 |
x 21,39 = |
191,44 |
3 |
|
S 13,447 |
|
S 287,64 |
|
Diese Werte sehen Sie, wenn Sie eine KG-Auswertung mit Teilmengen ausgeben.
In der AMP selbst wird aus den Teilmengen immer nur eine Gesamt-Positionsmenge errechnet (13,477) und mit dem EP (21,39) multipliziert.
Ergebnis: 287,631333 ... gerundet: 287,63 EUR - gegenüber 287,64 EUR in der KG-Auswertung. Diesen einen Cent Rundungsdifferenz zwischen AMP-Wert und KG-Wert kennen wir ja schon.
Es geht aber noch weiter:
In der Kostengruppen-Auswertung möchten wir nun nicht die Teilmengen, sondern die Gesamtmengen für die Positionen ausgeben.
Was steht dann in der KG 2 für diese Position in der Zeile:
2,800 x 21,39 = 59,90 ??
...das wäre die GP-Addition der Teilmengenkosten oder:
2,800 x 21,39 = 59,89 ??
... das wäre die Multiplikation der (Gesamt-)Teilmenge mit dem EP.
Sie erkennen das Dilemma?
Eine weitere Feinheit beim Anlegen von Teilrechnungen: Nettobetrag Gesamt bezogen auf das Aufmaß Gesamt (= kumulative Rechnungsfreigabe)
Bei einer schrittweisen Aufmaßprüfung werden hierbei bei jeder neuen Teilrechnung die aktuell erreichten Gesamtwerte sowohl für die Mengen, als auch für die Nettobeträge Gesamt errechnet! Bereits erfolgte Zahlungen werden vom Nettobetrag Gesamt der aktuellen Rechnung abgezogen. D.h. sobald aus Vorgänger-Teilrechnungen schon Werte vorhanden sind (die auch nicht ganzzahlig waren!), können Rundungsdifferenzen entstehen.
Beispiel:
Zwei Teilrechnungen (TR), die Position hat einen EP von 46,22 EUR.
|
Zuwachsmenge |
x EP |
exakt (gerundet) |
ORCA AVA Gesamt |
1. TR |
5,200 |
x 46,22 = |
240,344 (...,34) |
240,34 |
2. TR |
278,600 |
x 46,22 = |
12.876,892 (...,89) |
12.876,90 |
... rechnet ORCA AVA falsch? Nein! ORCA AVA berechnet auch den Zahlungsbetrag für die 2.TR über die erreichte Gesamtmenge und nicht über die Zuwachsmenge:
5,2 + 278,6 = 283,8 (= Aufmaß) multipliziert mit dem EP 46,22 ergibt: 13.117,236
... gerundet: 13.117,24 EUR
Der Wert, der als Nettobetrag gesamt für die Zuwachsmenge in der zweiten TR angezeigt wird, ist nicht aus der Multiplikation 'Zuwachsmenge 2. TR x EP' gebildet, sondern aus der Differenz:
Nettobetrag Gesamt für Aufmaß abzüglich Nettobetrag Gesamt bisheriger Aufmaßstand = Nettobetrag Gesamt (= Kostenzuwachs) dieser Teilrechnung
... d.h. im Beispiel: 13.117,24 abzüglich 240,34 = 12.876,90 EUR
Bei umgekehrter Reihenfolge der TRs würde sich folgerichtig ergeben:
|
Zuwachsmenge |
x EP |
exakt (gerundet) |
ORCA AVA |
1. TR |
278,600 |
x 46,22 = |
12.876,892 (..., 89) |
12.876,89 |
2. TR |
5,200 |
x 46,22 = |
240,344 (...,34) |
240,35 |
... hier: 13.117,24 abzüglich 12.876,89 = 240,35 EUR!
Das ist aber nicht tragisch: Solche Rundungsdifferenzen bei Teilrechnungen in Rechnungs-Sequenzen werden beim Anlegen der Schlussrechnung ausgeglichen, da sich hier der Nettobetrag Gesamt immer auf das Gesamt Aufmaß bezieht!
Im Bereich der Aufmaßprüfung / Mengenermittlung gibt es einige Regelwerke, die (historisch teilweise widersprüchliche) Forderungen in Bezug auf die anzugebenden Nachkommastellen und das anzuwendende Rundungsverfahren enthalten.
In den Vorgängerversionen des Vergabehandbuch fand sich (z.B. 2008 (Bund) - VHB) unter
"Zusätzliche Vertragsbedingungen für die Ausführung von Bauleistungen Einheitliche Fassung" in Ziffer 10.4 noch die Angabe:
" Bei Abrechnungen sind Längen und Flächen mit zwei Stellen nach dem Komma, Rauminhalte und Massen mit drei Stellen nach dem Komma anzugeben."
Für die Ausgaben gibt es bei jeder Variablen (Datenfeld) die Eigenschaft
, die eine Vielzahl an möglichen Anzeigeformaten bietet. Bedenken Sie aber, dass ein 'unpassendes' Anzeigeformat auch den Anschein eines vermeintlichen Fehlers erwecken kann.
Diese Formate werden
|
Wir sprechen hier oft nur von einem Cent Differenz - der aber zu Diskussionen führt. Nicht zuletzt, weil von Computern eine absolute Richtigkeit erwartet wird. Oft geht es aber nur darum, sich im realen Leben auf akzeptable Näherungen zu einigen.
Beispiel Mathematik: Umrechnen von Brüchen zu Dezimalzahlen
10 geteilt durch 3 ist 3 1/3 oder 3,3333 Periode - das kann theoretisch exakt angegeben werden.
Will man aber 10 Euro auf drei Personen verteilen, so rundet man auf 2 Stellen: 3,33 EUR.
Aber: 3 x 3,33 zurückgerechnet, ergibt 9,99 EUR.
Es bleibt also praktisch ein Cent übrig - falls man gerecht verteilen will. Wer bekommt den Cent?
Beispiel Aufmaßprüfung: Toleranzen
Sehen wir uns das Rechenbeispiel aus den 'Technischen Gründen' noch mal an:
11,464 m |
x 56,39 EUR = |
646,46 |
ORCA AVA |
11,464 m |
x 56,39 EUR = |
646,45 |
(Papier) |
Wir haben in ORCA AVA einen Cent Differenz gegenüber dem 'Papier'-Wert.
11,465 m x 56,39 EUR = 646,51 EUR
... 6 Cent Differenz gegenüber dem 'Papier'-Wert (ist natürlich abhängig vom EP).
11,460 m x 56,39 EUR = 646,23 EUR
... 23 Cent Differenz gegenüber dem 'Papier'-Wert (auch abhängig vom EP).
Damit sind wir bei der Realität am Bau angelangt...!
Vereinbaren Sie mit Ihren Bauherren und Auftragnehmern sinnvolle, geforderte bzw. zulässige Genauigkeiten im Aufmaß und bei der Rundung!
Denken Sie dabei auch nicht nur an einzelne Werte, sondern an die Projektsummen: Erfahrungsgemäß heben sich Rundungsdifferenzen auch gerne gegenseitig auf, so dass in der Gesamtsumme nur eine kleine Differenz bleibt.