Ansicht
Dokumentation

ABENCONVERSION_TYPE_DECFLOAT - CONVERSION TYPE DECFLOAT

ABENCONVERSION_TYPE_DECFLOAT - CONVERSION TYPE DECFLOAT

CL_GUI_FRONTEND_SERVICES - Frontend Services   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Quellfeldtyp decfloat16, decfloat34

Wenn das Quellfeld keine gültige dezimale Gleitpunktzahl enthält, kommt es außer bei der Zuweisung an eine andere dezimale Gleitpunktzahl zur behandelbaren Ausnahme CX_SY_CONVERSION_NO_NUMBER. Ungültige Gleitpunktzahlen sind in ABAP auch die im Standard IEEE-754-2008 vorgesehenen speziellen Werte "+Infinity", "-Infinity", "NaN" und "sNaN", die Unendlichkeit oder ungültige Zahlen bezeichnen.

Numerische Zielfelder

Ziel Konvertierung
i, int8, (b, s) Der Wert der dezimalen Gleitpunktzahl wird auf eine ganze Zahl gerundet. Wenn diese Zahl innerhalb des Wertebereichs für den Datentyp i, int8, (b, s) liegt, wird sie in die interne Darstellung der entsprechenden Integerzahl konvertiert. Ansonsten kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
p Der Wert der dezimalen Gleitpunktzahl wird auf die Anzahl der Nachkommastellen des Zielfelds gerundet. Wenn diese Zahl innerhalb des Wertebereichs für den Datentyp des Zielfelds liegt, wird sie in die interne Darstellung einer gepackten Zahl konvertiert. Ansonsten kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
decfloat16, decfloat34 Bei der Zuweisung zum gleichen Datentyp wird der Inhalt unkonvertiert übertragen. Bei einer Zuweisung von decfloat34 nach decfloat16 wird die Mantisse von 34 auf 16 Stellen gekürzt und falls notwendig kaufmännisch gerundet. Falls die Mantisse des Zielfelds lang genug ist, bleibt die Skalierung erhalten. Wenn der Wertebereich von decfloat16 überschritten wird, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
f Der Wert der dezimalen Gleitpunktzahl wird in den einer binären Gleitpunktzahl übertragen. Wenn die Dezimalzahl nicht als binäre Gleitpunktzahl darstellbar ist, wird der nächstliegende Wert verwendet. Wenn der Wert außerhalb des Wertebereichs für binäre Gleitpunktzahlen liegt, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.

Das Ergebnis der folgenden Konvertierung hat den gerundeten Wert 1234.57.

Zeichenartige Zielfelder

Ziel Konvertierung
c Der Inhalt des Quellfelds wird erst wie beim Datentyp string beschrieben in eine mathematische oder wissenschaftliche Notation konvertiert und das Ergebnis dieser Konvertierung rechtsbündig in das Zielfeld übertragen. Ist das Zielfeld länger als der Textstring wird links mit Leerzeichen aufgefüllt. Ist das Zielfeld kürzer als der Textstring wird eine mathematische in die wissenschaftliche Notation umgewandelt und deren Mantisse bei Bedarf kaufmännisch gerundet. Falls die Länge nicht für mindestens eine Stelle der Mantisse ausreicht, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
n Der Wert der dezimalen Gleitpunktzahl wird auf eine ganze Zahl gerundet. Der Absolutwert dieser Zahl wird als Ziffernfolge rechtsbündig in das Zielfeld übertragen. Wenn das Zielfeld länger als die Ziffernfolge ist, wird links mit Nullen aufgefüllt. Wenn es zu kurz ist, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
string Falls der Exponent der dezimalen Gleitpunktzahl kleiner gleich 0 und der Absolutwert der Zahl größer gleich 1E-6 ist, wird die Gleitpunktzahl wie folgt in lückenloser mathematischer Notation aufbereitet: die Ziffernfolge besteht aus der Mantisse der dezimalen Gleitpunktzahl ohne führende Nullen. Falls der Exponent der dezimalen Gleitpunktzahl kleiner 0 ist, wird ein Dezimalpunkt an der entsprechenden Stelle gesetzt. Falls der Exponent der dezimalen Gleitpunktzahl größer 0 oder der Absolutwert der Zahl kleiner 1E-6 ist, wird die Gleitpunktzahl wie folgt in lückenloser wissenschaftlicher Notation aufbereitet: die Mantisse besteht aus der Mantisse der dezimalen Gleitpunktzahl ohne führende Nullen. Falls die Mantisse mehr als eine Stelle enthält, wird ein Dezimalpunkt nach der ersten Stelle gesetzt. Der Exponent wird immer mit Vorzeichen ohne führende Nullen dargestellt. In beiden Darstellungen wird bei negativen Werten das Vorzeichen dargestellt, bei positiven Werten nicht. Die beiden Darstellungen werden auch dann verwendet, wenn der Wert der dezimalen Gleitpunktzahl 0 ist. Die maximale Länge des Zielfelds ist 24 für decfloat16 und 42 für decfloat34.

Hinweise

  • Die Konvertierungsregel von dezimalen Gleitpunktzahlen in Textstrings ist so, dass ein Textstring, der durch Zuweisung einer dezimalen Gleitpunktzahl gefüllt wurde, bei einer Zuweisung an eine dezimale Gleitpunktzahl die gleiche interne Darstellung ergibt, wie in der ursprünglichen dezimalen Gleitpunktzahl (Erhaltung der Skalierung).

Beispiele

Die folgende Tabelle zeigt wie dezimale Gleitpunktzahlen in Textstrings konvertiert werden:

Gleitkommazahl Textstring
123E+0 123
123E+1 1.23E+3
2E+1 2E+1
1230E-2 12,30
5E-6 0,000005
50E-7 0,0000050
5E-7 5E-7
50E-8 5.0E-7
-0E+0 -0
0E-100 0E-100

Byteartige Zielfelder

Ziel Konvertierung
x Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ x konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).
xstring Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ xstring konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).

Die aus der Konvertierung resultierende Bytekette ist 0000007C und entspricht dem Ergebnis der Konvertierung der gerundeten Zahl 124.

Datums-/Zeitfelder als Zielfelder

Ziel Konvertierung
d Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ d konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).
t Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ t konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).
utclong Nicht unterstützt. Führt zu einem Syntaxfehler oder zur Ausnahme CX_SY_CONVERSION_NOT_SUPPORTED.

Der aus der Konvertierung resultierende Wert des Zeitfelds ist 100001.






Fill RESBD Structure from EBP Component Structure   PERFORM Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12998 Date: 20240523 Time: 171057     sap01-206 ( 172 ms )