您的位置:首页 > 其它

NUMERIC_CHECK用法及怎样判断小数类型的字符串为数字

2015-05-07 10:54 387 查看
ABAP中,有时候需要判断一个字符串是否为数字,下面是常用的几种方法及注意事项:

1、可以利用NUMERIC_CHECK判断字串是否为数字并输出补零;

注意:利用function module NUMERIC_CHECK 检查字符串是否为数字时,整数类型的是NUMC,小数类型则会被认为Char类型!

DATA:lv_char1 TYPE c length 3 VALUE '100',

lv_char2 TYPE n LENGTH 6,

lv_type TYPE dd01v-datatype.

CALL FUNCTION ‘NUMERIC_CHECK’

EXPORTING

string_in = lv_char1

IMPORTING

string_out = lv_char2

htype = lv_type.

WRITE:lv_char1,lv_char2,lv_type.

结果:100 000100 NUMC

————

注意:

1、小数类型数字检查结果是CHAR类型的。

如下所示:

DATA:lv_char1 TYPE c length 3 VALUE '0.100',

lv_char2 TYPE n LENGTH 6,

lv_type TYPE dd01v-datatype.

CALL FUNCTION ‘NUMERIC_CHECK’

EXPORTING

string_in = lv_char1

IMPORTING

string_out = lv_char2

htype = lv_type.

WRITE:lv_char1,lv_char2,lv_type.

结果:0.1 0.100 char

————

2、可以用正则表达式判断,也只能判断整数,如果MATCH = 'X',则为数字,如果为空,则不是数字类型,如下代码:

DATA:MATCHER TYPE REF TO CL_ABAP_MATCHER.

DATA:MATCH TYPE C LENGTH 1.

DATA:STR(10) TYPE C.STR = '2323'.

MATCHER = CL_ABAP_MATCHER=>CREATE( PATTERN = '\d+' TEXT = STR ).

MATCH = MATCHER->MATCH( ).

3、也可以用另一种方法来判断是否为补获系统异常:把字符串赋值给I类型的变量;如果是字母,会触发一个异常;可据异常情况,断定是数字还是字母!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐