Dies sind Gleitkommazahlen. Man kann mit ihnen wie mit anderen numerischen Datentypen arithmetische Berechnungen durchführen. Bitte etwas mehr Kontext in die Frage einfügen. Sind dies Einheitenfelder oder Währungsbeträge, die umgerechnet werden sollen?
DATA:
ld_value TYPE f.
ld_value = '12.2434723'.
WRITE ld_value. "=> 1,2243472300000001E+01
WRITE ld_value EXPONENT 0 DECIMALS 2. "=> 12,24
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Aber wie soll man bitte von 3,1104000000000000E+07 auf 12 kommen? Ich hatte erst gedacht, dass evtl. von einem 8-Byte-Integer auf ein Float gecastet worden sei - aber auf einem Testsytem sehe ich , dass int 12 zu float 5.9287877500949585E-323 gecastet wird und ich habe leider keine anderen Testsyteme zur Verfügung, die evtl. eine andere Byteorder verwenden.
Es wären übrigens die Wert aus der DB-Tabelle mmpt. Dort der Zyklus. Ich verstehe auch nicht, wie man da auf 12,24,6 usw. kommt, aber es ist tatsächlich so, dass das die Werte sind. Man kann es vergleichen mit der IP03
MMPT ist in meinen Testsystemen leider leer. Aber lt. DTEL-Beschreibung scheint das doch eine Zeitspanne zu sein. Und wenn ich mir 3,1104000000000000E+07 = 31.104.000 anschaue sehe ich, dass diese Zahl durch 86.400 teilbar ist, was darauf hinweist, dass es sich um eine Zeit handelt.
Ich rate jetzt mal. 31104000 Sekunden = 360 Tage ~ 12 Monate?