千位符处理

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.

定期更文,欢迎关注

 

posted @ 2025-05-03 10:30  斌将军  阅读(42)  评论(0)    收藏  举报