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

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(10TYPE C.STR = '2323'.
MATCHER = CL_ABAP_MATCHER=>CREATE( PATTERN     = '\d+'                                   TEXT        = STR ).
MATCH = MATCHER->MATCH( ).

 

3、也可以用另一种方法来判断是否为补获系统异常:把字符串赋值给I类型的变量;如果是字母,会触发一个异常;可据异常情况,断定是数字还是字母!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChampaignWolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值