Ü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 / 4090 / 127 / 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.
2220
Views
Leeren Wert überprüfen
von joergjoerg » 24.04.2006 16:27 • Verfasst in ABAP® für Anfänger
9
Antw.
4231
Views
Suchhilfe überprüfen
von simethandreas » 06.10.2009 13:56 • Verfasst in ABAP® für Anfänger
4
Antw.
3158
Views
Tabellenfeld auf Existenz überprüfen
von GAST » 13.10.2005 13:06 • Verfasst in ABAP® Core
3
Antw.
2786
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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 6 Stunden von black_adept gelöst 23 / 3593
User Exit EXIT_RQCPRM10_001
vor 7 Stunden von a-dead-trousers 2 / 208
Trennen Strasse und Hausnummer
vor 13 Stunden von payten 13 / 10546
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1259

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

Dialog-Container mit Toolbar/Status
vor 6 Stunden von black_adept gelöst 23 / 3593
User Exit EXIT_RQCPRM10_001
vor 7 Stunden von a-dead-trousers 2 / 208
Trennen Strasse und Hausnummer
vor 13 Stunden von payten 13 / 10546
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1259

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2810
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9390