Ü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 / 1031 / 29 / 188 ) »
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 / 1031 / 29 / 188 ) »
Hi Blackmail,
natürlich, mit CS.
Danke
Gruß Wolfgang

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
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.
2038
Views
Leeren Wert überprüfen
von joergjoerg » 24.04.2006 16:27 • Verfasst in ABAP® für Anfänger
9
Antw.
3994
Views
Suchhilfe überprüfen
von simethandreas » 06.10.2009 13:56 • Verfasst in ABAP® für Anfänger
2
Antw.
6958
Views
string auf Buchstaben überprüfen
von dimes » 16.05.2007 12:19 • Verfasst in ABAP® Core
3
Antw.
2483
Views
MARA-MATNR überprüfen
von SAPAlex » 08.04.2008 20:56 • Verfasst in ABAP® für Anfänger
4
Antw.
4138
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.