如果我有一个值,可以是 P 类型或字符串,即 12.345,我想知道小数位数是否超过两位。
我似乎无法从我的研究中找到在 ABAP 中做到这一点的决定性方法。有谁知道吗
假设字符串总是是这样的数字,那么你可以这样做:
DATA(number_string) = '12.245'.
FIND FIRST OCCURRENCE OF '.' IN number_string MATCH OFFSET DATA(lv_position).
IF sy-subrc = 0.
WRITE |There are { strlen( number_string ) - lv_position - 1 } decimal places|.
ELSE.
WRITE |There are no decimal places|.
ENDIF.
请注意,如果您没有正确格式的数字,这将会中断。例如,如果它在不使用
.
作为小数点分隔符的语言环境中进行格式化,如果它是一个数字在右侧用空格填充的字符串,或者如果由于某种原因在该字符串中存在多个 .
字符串。