如何查看STRING数字中的小数位数?

问题描述 投票:0回答:1

如果我有一个值,可以是 P 类型或字符串,即 12.345,我想知道小数位数是否超过两位。

我似乎无法从我的研究中找到在 ABAP 中做到这一点的决定性方法。有谁知道吗

string decimal abap decimal-point
1个回答
0
投票

假设字符串总是是这样的数字,那么你可以这样做:

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.
  

请注意,如果您没有正确格式的数字,这将会中断。例如,如果它在不使用

.
作为小数点分隔符的语言环境中进行格式化,如果它是一个数字在右侧用空格填充的字符串,或者如果由于某种原因在该字符串中存在多个
.
字符串。

© www.soinside.com 2019 - 2024. All rights reserved.