abap程序,如何检查char128字段只包含数字和小数点

时间:2012-04-24 02:54:02

标签: abap

我从excel文件中读取数据。 内部表的cols都是char128,有2个cols只包含带小数点的数字。所以我需要检查字段只包含数字或带小数点的数字。如何 ? 感谢

功能模块NUMERIC_CHECK,只能检查数字,如果带小数点的数字则无用。

4 个答案:

答案 0 :(得分:4)

您可以使用CO(仅包含):

IF value CO '1234567890.'.
  "OK
ELSE.
  "Error"
ENDIF.

也许您需要在IF _ CO声明中添加空格。

此检查未检测到多个小数点(例如123.45.67.89)。

较新版本的ABAP支持正则表达式。

如果您的字符串中还有空格,您可以将它们添加到CO值:: IF value CO '1234567890 .'.

答案 1 :(得分:4)

您可以尝试使用REGEX。报告DEMO_REGEX_TOY允许您输入字符串并针对它们测试正则表达式。

一般来说,对REGEX更有经验的人可能会使这个更加通用,但这就是我想出的:

-?[0-9]+(\.[0-9]*)?

- ?可选择匹配“ - ”字符(允许否定或非否定

[0-9] + 匹配数字(+使其匹配1或更多)

\。?可选地匹配'。'字符(\需要'。'是运算符)

([0-9] +)?可选地匹配小数点后面的任何数字

答案 2 :(得分:0)

如果要检查字符串是否是有效的小数,可以使用以下模块函数:'HRCM_STRING_TO_AMOUNT_CONVERT',它允许您将字符串转换为数字对应字符串,给定字符串,小数点分隔符和千位分离器。

问候

答案 3 :(得分:0)

另一种检查号码的方法:

data: float_value type f.
try.
  float_value = <your string value here>.
catch cx_sy_conversion_no_number.
  " not a valid number
endtry.