Feldtypen

Getting started ... Alles für einen gelungenen Start.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Feldtypen

Beitrag von Kelly (ForumUser / 25 / 0 / 0 ) »
Hallo Zusammen!

Aus einem Funktionsbaustein bekomme ich einen Wert im Format FLTP 16 geliefert. Diesen Wert muss ich in ein Feld mit dem Format CHAR 2 schreiben.

Bsp.
Aus 3,600000000000000E+01 soll 36 werden

Wie funktioniert das? *panik*
Reicht es aus den Wert einfach in ein Feld Typ I zu schreiben? :oops:

Lieben Dank schon mal!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Gast ( / / 0 / 3 ) »
Und wie willst Du 3,600000000000000E+02 nach CHAR2 konvertieren?

Beitrag von Kelly (ForumUser / 25 / 0 / 0 ) »
:?:
Das ist ja meine Frage...

Beitrag von meinrad (ForumUser / 67 / 0 / 0 ) »
Hallo,
Mit Move in ein I-Feld bringen
und dann in das C-feld.
Falls auch einmal Kommastellen vorkommen könnten,
dann in ein P-Feld, und dann mit Write ins C-Feld ("schön" aufbereitet).

Beitrag von bakky ( / / 0 / 3 ) »
hier ist eine möglichkeit(als Testprogram)

REPORT ztest .
DATA: f TYPE f,
c TYPE char3,
p TYPE p DECIMALS 1.

PARAMETER: p_in TYPE p DECIMALS 1.

START-OF-SELECTION.:
f = p_in.
p = f.
c = p.

REPLACE '.' WITH ' ' INTO c.
CONDENSE c NO-GAPS.
write:/ c.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Kelly,

das erste Problem ist, das ein Feld von Type CHAR(2) nur Werte von 00 bis 99 aufnehmen kann. Daher stellt gast die berechtigte Frage, was bei Zahlen passieren soll, der Exponent 2 und mehr beträgt.
Daher also die Fragen:
In welchem Zahlenbereich liegen die Rückgabewerte der Funktion?
Was passiert bei Überlauf?
Was geschieht mit Nachkommawerten?
etc.

Das Zuweisen an eine Int-Variable schneidet zumindest den Nachkommateil ab.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von black_adept (Top Expert / 4131 / 130 / 955 ) »
ereglam hat geschrieben:Das Zuweisen an eine Int-Variable schneidet zumindest den Nachkommateil ab.
Es wird nicht abgeschnitten sondern gerundet.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Kelly (ForumUser / 25 / 0 / 0 ) »
Lieben Dank mal für die ganzen Antworten! :D

ereglam hat geschrieben:Hallo Kelly,
das erste Problem ist, das ein Feld von Type CHAR(2) nur Werte von 00 bis 99 aufnehmen kann. Daher stellt gast die berechtigte Frage, was bei Zahlen passieren soll, der Exponent 2 und mehr beträgt.
Daher also die Fragen:
In welchem Zahlenbereich liegen die Rückgabewerte der Funktion?
Was passiert bei Überlauf?
Was geschieht mit Nachkommawerten?
etc.
Das Zuweisen an eine Int-Variable schneidet zumindest den Nachkommateil ab.
Die Zahlen, die zurückgeliefert werden, sind ganze Zahlen. Um genau zu sein: Es handelt sich um Angaben von Monaten, z.B. 36 Monate. :)

Ich probier es jetzt mal aus und schieb das Feld in ein I-Feld...
...bin schon gespannt wie ein Flitzebogen! :wink:

Beitrag von Kelly (ForumUser / 25 / 0 / 0 ) »
Zugegeben, ich hatte voll die Panik als ich die 3,600000000000000E+01 sah und wusste, dass ich die jetzt zu ner 36 bringen muss...
...aber letztendlich ist das ja sowas von simpel...


:D :) :oops: :) :D



Danke an alle Helfer in der Not! :wink:
Zuletzt geändert von Kelly am 21.09.2005 14:29, insgesamt 1-mal geändert.

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
black_adept hat geschrieben:
ereglam hat geschrieben:Das Zuweisen an eine Int-Variable schneidet zumindest den Nachkommateil ab.
Es wird nicht abgeschnitten sondern gerundet.
Stimmt tatsächlich... :oops:

Code: Alles auswählen.

2,5000000000000000E+00          3
2,4900000000000002E+00          2
2,0000000000000000E+00          2
1,9900000000000000E+00          2
Widerpricht aber ein wenig dem Verhalten bei anderen Programmiersprachen. :?:
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von black_adept (Top Expert / 4131 / 130 / 955 ) »
ereglam hat geschrieben: Widerpricht aber ein wenig dem Verhalten bei anderen Programmiersprachen. :?:
*lach*
Aber es entspricht der Doku.

P.S.
Schau mal was man beim Runden von z.B. "-3,5" rausbekommt. Da hab ich letztens mal einem Controller einen kleinen Vortrag halten müssen, warum das korrekt ist...
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5713
Views
Längengrenze für ALV - Feldtypen C oder String
von Svenson » 13.01.2006 14:36 • Verfasst in Dialogprogrammierung
0
Antw.
1518
Views
Tabellenstruktur, ohne deren Feldtypen kopieren
von Replica » 31.07.2009 14:50 • Verfasst in ABAP® Core
1
Antw.
1607
Views
Feldtypen CURR / QUAN im Unterprogramm ermitteln, geht das?
von Gast » 25.01.2006 16:21 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 2 / 2738
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 907

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

DIN Norm Klassifizierung
vor 2 Tagen von Radinator 2 / 2738
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 907

Unbeantwortete Forenbeiträge