Excelファイルからデータを読み取ります。内部テーブルの列はすべてchar128であり、小数点付きのデジタルのみを含む2つの列があります。したがって、フィールドにデジタルまたは小数点付きのデジタルのみが含まれていることを確認する必要があります。
汎用モジュールNUMERIC_CHECKは、小数点付きのデジタルが役に立たない場合、デジタルのみをチェックすることができます。
Excelファイルからデータを読み取ります。内部テーブルの列はすべてchar128であり、小数点付きのデジタルのみを含む2つの列があります。したがって、フィールドにデジタルまたは小数点付きのデジタルのみが含まれていることを確認する必要があります。
汎用モジュールNUMERIC_CHECKは、小数点付きのデジタルが役に立たない場合、デジタルのみをチェックすることができます。
以下を使用できますCO
(含むのみ):
IF value CO '1234567890.'.
"OK
ELSE.
"Error"
ENDIF.
-ステートメントにもスペースが必要な場合がありますIF _ CO
。
このチェックでは、複数の小数点 ( など123.45.67.89
) は検出されません。
ABAP の新しいバージョンでは、正規表現がサポートされています。
文字列にスペースもある場合は、それらを CO 値に追加できます::IF value CO '1234567890 .'.
REGEX を使用してみてください。レポート DEMO_REGEX_TOY では、文字列を入力し、それらに対して正規表現をテストできます。
一般的にREGEXの経験が豊富な人は、これをもう少し用途の広いものにすることができるかもしれませんが、私が思いついたのは次のとおりです。
-?[0-9]+(\.[0-9]*)?
-? 必要に応じて「-」文字に一致します (否定または非否定を許可します)
[0-9]+は数字に一致します (+ は 1 つ以上に一致します)
\.? オプションで「.」に一致します。文字 (「.」は演算子であるため、\ が必要です)
([0-9]+)? オプションで、小数点以下の任意の数字に一致します
文字列が有効な10進数であるかどうかを確認する場合は、次のモジュール関数を使用できます:'HRCM_STRING_TO_AMOUNT_CONVERT'。これにより、文字列、小数点、および1000の区切り文字を指定して、文字列を対応する数値に変換できます。
よろしく
番号を確認する別の方法:
data: float_value type f.
try.
float_value = <your string value here>.
catch cx_sy_conversion_no_number.
" not a valid number
endtry.