两位数字金额转化为大写格式

本文介绍了一个使用ABAP编程语言实现的将数值金额转换为对应汉字金额表述的程序。该程序通过一系列数据定义和逻辑处理,能够准确地将输入的数值金额转化为符合中文习惯的大写金额表示形式,适用于财务票据等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 IV_MONEY ABSIV_MONEY ).
  DATASCR(30TYPE CRES(60TYPE C,FEN(2TYPE .
  DATALEN TYPE IC1 TYPE IC2 TYPE IC3 TYPE IC4 TYPE I.
  DATAD1(1TYPE CD2(1TYPE CD3 TYPE I.
  DATADIGIT(2)  TYPE CWEIGHT(2TYPE C.
  DATARULE1(20TYPE VALUE '零壹贰叁肆伍陆柒捌玖'.
  DATARULE2(30TYPE VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万'.
  SCR IV_MONEY * 100.
  CONDENSE SCR NO-GAPS.
  IF SCR '0'.
    RES '零元'.
  ELSE.
    LEN STRLENSCR ).
    C1 0.
    D1 '0'.
    CLEAR RES.
    DO LEN TIMES.
      C1 C1 + 1.
      C2 LEN C1.
      D2 SCR+C2(1.
      IF D2 '0'.
        D3 0.
      ELSE.
        D3 D2.
      ENDIF.
      DIGIT RULE1+D3(1.
      C3 C1 .
      WEIGHT RULE2+C3(1.
      IF D2 '0'.
        IF C1 3.
          DIGIT ''.
        ELSEIF C1 7.
          DIGIT ''.
          IF LEN > 10 .
            C4 LEN 10.
            IF SCR+C4(4'0000'.
              WEIGHT ''.
            ENDIF.
          ENDIF.
        ELSEIF C1 11.
          DIGIT ''.
        ELSEIF D1 '0'.
          DIGIT ''.
          WEIGHT ''.
        ELSE.
          WEIGHT ''.
        ENDIF.
      ENDIF.
      CONCATENATE DIGIT WEIGHT RES INTO RES .
      D1 D2.
    ENDDO.
  ENDIF.
  LEN STRLENRES 1.
  FEN RES+LEN(1).
  IF FEN <> '分' .
    CONCATENATE RES '整' INTO EV_MONEY.
  ELSE.
    EV_MONEY RES.
  ENDIF.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值