DATA: ls_usdefaults TYPE usdefaults,
lv_num TYPE char10,
lv_decimal TYPE char1, "小数点
lv_thousand TYPE char1. "千位符
" 获取用户设置
CALL FUNCTION 'SUSR_USER_READ'
EXPORTING
user_name = sy-uname
IMPORTING
user_defaults = ls_usdefaults
EXCEPTIONS
user_name_not_exists = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE '获取用户设置错误' TYPE 'E'.
ENDIF.
CASE ls_usdefaults-dcpfm.
WHEN 'X'."十进制计数法设置为 'X'
lv_thousand = ','.
lv_decimal = '.'.
WHEN 'Y'."十进制计数法设置为 'Y'
lv_thousand = ' '.
lv_decimal = ','.
WHEN OTHERS. " 默认值
lv_thousand = '.'.
lv_decimal = ','.
ENDCASE.
lv_num = '1,234.5'."当前用户系统中的数字
"去掉千位符
REPLACE ALL OCCURRENCES OF lv_thousand IN lv_num WITH ''.
*"去掉小数点
*REPLACE ALL OCCURRENCES OF lv_decimal IN lv_result WITH '.'.
WRITE:lv_num.