Rundungsungenauigk. treten bei Datentyp FLOAT für AMOUNT und QUANTITY auf
Message type: E = Error
Message class: R7B - BW Metadata (InfoCube, InfoObject, InfoObject catalog)
Message number: 136
Message text: Rundungsungenauigk. treten bei Datentyp FLOAT für AMOUNT und QUANTITY auf
Was verursacht dieses Problem?
Der ABAP-Datentyp FLOAT ist eine Implementierung des IEEE-Datentyps
DOUBLE. In den meisten Datenbanken wird dieser Datentyp außerdem
entsprechend der IEEE-Spezifikation implementiert
Dieser Datentyp ist ein Gleitpunkt-Datentyp mit Mantisse und Exponent in
Binärdarstellung verschlüsselt. Da die Konvertierung von Dezimal- zu
Binärdarstellung ohne den Genauigkeitsverlust vieler Zahlen technisch
unmöglich ist, führt die Verwendung von FLOAT immer zu
Rundungsungenauigkeiten. Beispiele sind 0,15, 25,5 und viele mehr. Sie
können als FLOATs nicht genau ausgedrückt werden.
In SAP-Hinweis 2798 werden einige Folgen dieses Verhaltens beschrieben.
Eine Dezimalverschiebung kann zum Beispiel zu Rundungsungenauigkeiten
führen.
Alle Rechenoperationen in FLOAT führen zu weiteren Ungenauigkeiten. Eine
einfache Addition von zwei Werten hat eine Ungenauigkeit in der letzten
Ziffer (15). Bei zehn Additionen verlieren Sie eine Ziffer an
Genauigkeit. Bei 100 Additionen verlieren Sie zwei Ziffern und bei
1.000.000 Additionen bereits sechs Ziffern. Das Ergebnis der
Datenbankaggregation SUM von einer Million Datensätze weist eine
verbleibende Genauigkeit von 8 anstatt 14 Ziffern auf. Bei der
Aggregation von einer Milliarde Zeilen würden dann nur 5 Ziffern korrekt
bleiben.
Daher ist der Datentyp FLOAT für betriebswirtschaftlich relevante Daten
wie Mengen und Beträge (zum Beispiel Finanzkennzahlen), für die genaue
Ergebnisse benötigt werden, nicht geeignet.
Systemantwort
Das System gibt eine Warnung aus, wenn diese Kennzahl definiert ist. Die
Kennzahl wird wie definiert verwendet.
Wie behebe ich diesen Fehler?
Prüfen Sie die Kennzahldefinition, und ändern Sie diese, sofern sie für
betriebswirtschaftlich relevante Szenarien verwendet wird. Geeignete
Datentypen sind die bei der Erstellung von Kennzahlen standardmäßig
vorgeschlagenen Typen. Diese Datentypen verwenden gepackte Dezimalzahlen
und weisen nicht die Rundungsungenauigkeiten wie bei FLOAT auf.
Vorgehensweise für Systemadministratoren
Das System gibt eine Fehlermeldung aus und erlaubt Ihnen nicht, mit dieser Transaktion fortzufahren, bis der Fehler behoben ist.
Fehlermeldungsextrakt aus SAP-System. Copyright SAP SE