Überprüfen, ob Wert dezimal ist

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Überprüfen, ob Wert dezimal ist

Beitrag von TomSd (ForumUser / 15 / 0 / 0 ) »
Hallo,

ich brauche einen FB oder eine Logik, mit der ich überprüfen kann ob es sich bei einem Wert um einen Dezimalwert handelt oder nicht:
10.00 -> true
Hallo -> false

MFG
TomSd

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


Überprüfen ob Wert dezimal ist

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,
schaue dir den Befehl IF ...CS ... mal an, damit gehts.
Gruß Wolfgang

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
Hallo,

@Wolfgang: ich hätte eher gesagt: IF .... CO '0123456789,.', oder?

Gruß BlackMail.

Überprüfen ob Wert dezimal ist

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hi Blackmail,
natürlich, mit CS.
Danke
Gruß Wolfgang

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Probier doch einfach eine Wertzuweisung deines Strings an ein (passendes) Zahlfeld.
Einen evtl. auftretenden Conversionerror fängst du ab. Wenn der CATCH anschlägt wars keine Zahl - sonst halt doch.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo TomSD,

schaue Dir einmal die FORM NUM_PRUEF im beigefügten Quelltext an. Der Quelltext hat übrigens zehnjähriges Jubiläum,

Viele Grüße
Wilfried
Wir sind lustig und haben es gar nicht nötig!

Beitrag von BlackMail (ForumUser / 79 / 0 / 0 ) »
poldi hat geschrieben:Der Quelltext hat übrigens zehnjähriges Jubiläum
Dafür funktioniert das aber leider auch nur für gepackte Zahlen und ist in dieser Form nicht unicodefähig (wegen describe field).

"CO" hat den Nachteil, dass nur auf Vorhandensein von Zeichen geprüft wird. Damit sind auch unsinnige "Zahlen" möglich, wie z. B. "2.5..7".

Ab Basis 7.0 könnte man auch etwas mit regulären Ausdrücken machen, z. B.

Code: Alles auswählen.

FIND REGEX '^[+-]?(([ [:digit:] ]+\.{1})?[ [:digit:] ]+)$' IN input.
wobei als Dezimaltrennzeichen der Punkt unterstellt wird und keine Tausendertrennzeichen erlaubt wären (für den Ausdruck gebe ich sowieso keine Garantie :wink: ).

Am vernünftigsten klingt daher eigentlich black_adepts Vorschlag.

Gruß BlackMail.

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo BlackMail.

Das Programm war tatsächlich nur für gepackte Zahlen gedacht. DESCRIBE ... IN BYTE MODE geht aber bei UNICODE. Zum Test habe ich im Debugging an <ZEIGER> manipuliert.

Viele Grüße
Wilfried
Wir sind lustig und haben es gar nicht nötig!

Beitrag von xxxx (ForumUser / 38 / 0 / 0 ) »
Hallo,

also bei der Überprüfung von Merkmalswerten gibt es ja auch einen check, ob das Format eingehalten wird (Fuba. 'CTCV_SYNTAX_CHECK') -> ev. hilft das weiter, den Wert zu prüfen ..

Auszug aus einem meiner programme:

CALL METHOD p_er_data_changed->get_cell_value
EXPORTING i_row_id = ls_mod_cell-row_id
i_fieldname = 'ATWRT'
IMPORTING e_value = lv_value.

* Prüfung, ob Wert o.k. ist - Merkmal Q_WLF50
* hat das richtige Format __,__
CALL FUNCTION 'CTCV_SYNTAX_CHECK'
EXPORTING
attribut = 'Q_WLF50'
decimals = 2
dec_presentation = ','
format = 'NUM'
length = 5
mask = '____,___'
string = lv_value
t_separator = 'D'
TABLES
tstrg = lt_strg
EXCEPTIONS
currency_check = 1
date_check = 2
format_check = 3
illegal_internal_baseunit = 4
interval_check = 5
pattern_check = 6
time_check = 7
unit_check = 8
no_valid_dimension = 9
interval_not_allowed = 10
presentation_not_possible = 11
OTHERS = 12.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

lv_value = ''.

ENDIF.

lg
Jo

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2216
Views
Leeren Wert überprüfen
von joergjoerg » 24.04.2006 16:27 • Verfasst in ABAP® für Anfänger
9
Antw.
4213
Views
Suchhilfe überprüfen
von simethandreas » 06.10.2009 13:56 • Verfasst in ABAP® für Anfänger
4
Antw.
3143
Views
Tabellenfeld auf Existenz überprüfen
von GAST » 13.10.2005 13:06 • Verfasst in ABAP® Core
3
Antw.
2777
Views
MARA-MATNR überprüfen
von SAPAlex » 08.04.2008 20:56 • Verfasst in ABAP® für Anfänger
4
Antw.
4313
Views
Fubas, die SAP-User überprüfen
von casta_diva » 28.08.2008 10:35 • Verfasst in ABAP® für Anfänger

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 18 Stunden von Bright4.5 1 / 384
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2031
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8627