通过正则表达式:
IF cl_abap_matcher=>matches( pattern = '^(-?[1-9]d*(.d*[1-9])?)|(-?0.d*[1-9])$' text = '1.01' ) = abap_true. WRITE '数字'. ELSE. WRITE '非数字'. ENDIF.
-? :负号[1-9]d* :整数部分(整数第一位不为0,后面的随意).d*[1-9] :小数部分(小数点最后一位不为0,中间的随意)0.d*[1-9] :0.xxxx形式的小数