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类型的变量;如果是字母,会触发一个异常;可据异常情况,断定是数字还是字母!
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类型的变量;如果是字母,会触发一个异常;可据异常情况,断定是数字还是字母!
相关文章推荐
- 自己写的一个判断一个字符串里面数字和字母程序。 FUNCTION 'NUMERIC_CHECK'
- js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式
- 【C编程练习】2013华为校园招聘机试题目题5:将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于2)有返回1,无返回2
- JS 中如何判断-字符串类型的数字
- 通过参数传递,判断数字、字符串、list、tuple、词典等数据类型是否为可变数据对象。
- 我的JavaScript回顾之路_01—0206—++在前在后区别/&&和||/条件判断语句/循环语句的区别/字符串类型数字和数字类型之间的转换
- 关于JS中判断是数字和小数的正则表达式用法
- js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式
- [转]Java中怎样判断一个字符串能否转成数字
- 将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于等于2)有返回1,无返回0
- Java中怎样判断一个字符串是否是数字
- 判断输入字符串是否是数字类型
- 字符串:怎样转换字符串为数字类型?
- java正则表达式——判断字符串为哪种类型的数字?
- 字符串:怎样将数字类型转换为字符串
- 【转载】怎样让SAP的货币、数字数据类型保留4位小数或者自定义位数小数
- c++中怎么判断一个string类型的字符串变量是否为数字?
- JS 中如何判断字符串类型的数字
- 判断字符串的数字类型
- 关于js正则表达式判断一个字符串是否是正确的有数字和小数点组成的金钱形式和 判读数值类型的正则表达式