2010/08/24

ABAP NUMERIC CHECK/NUBER CHECK

*-ABAP NUMERIC CHECK/NUBER CHECK
REPORT YZEROCHO00.

DATA: W(13) VALUE '1234.345'.

*-1- CHECK IF A VARIABLE IS NUMERIC (with decimal)
* NOTE: '0123456789. '(THERE IS A SPACE AFTER .DOT)
IF W CO '0123456789. ' .
WRITE :/ 'A NUMBER:'.
WRITE W.
ELSE.
WRITE :/ 'NOT A NUMBER:'.
WRITE W.
ENDIF.

*※ '1.2.34....' is also a number
W = '1.2.34....'.
IF W CO '0123456789. ' .
WRITE :/ 'A NUMBER:'.
WRITE W.
ELSE.
WRITE :/ 'NOT A NUMBER:'.
WRITE W.
ENDIF.

*-2- NUMBER CHECK INTEGER
W = '12567'.
* NOTE: '0123456789 '(THERE IS A SPACE AFTER 9)
IF W CO '0123456789 ' .
WRITE :/ 'A INTEGER:'.
WRITE W.
ELSE.
WRITE :/ 'NOT A INTEGER:'.
WRITE W.
ENDIF.

*-21- FM:NUMBERIC_CHECK. NOTE: This FM is limited for integer
DATA:HTYPE LIKE DD01V-DATATYPE.
CALL FUNCTION 'NUMERIC_CHECK'
EXPORTING
STRING_IN = W
IMPORTING
STRING_OUT = W
HTYPE = HTYPE.

WRITE :/ HTYPE.
WRITE W.

W = '1234.345'.
CALL FUNCTION 'NUMERIC_CHECK'
EXPORTING
STRING_IN = W
IMPORTING
STRING_OUT = W
HTYPE = HTYPE.

WRITE :/ HTYPE.
WRITE W.

***Result******
*A NUMBER: 1234.345
*A NUMBER: 1.2.34....
*A INTEGER: 12567
*NUMC 0000000012567
*CHAR 1234.345

3 comments: