系统中自带的函数SPELL_AMOUNT适用于没有小数的情况,如果金额带小数,结果就会出现问题,结果如下
这里有一个优化过的自定义小写转大写函数,源代码如下:
FUNCTION zfun_convert_money.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_VAL) TYPE STRING OPTIONAL
*" EXPORTING
*" VALUE(E_DXSTR) TYPE STRING
*"----------------------------------------------------------------------
DATA: zs(20).
DATA: xs(20).
DATA: str(30).
DATA: len TYPE i VALUE 0.
DATA: cis TYPE i VALUE 0.
DATA: lis TYPE i VALUE 0.
DATA: ss(2).
DATA: rr(1).
DATA: strr(30).
DATA: change(30) TYPE c VALUE '1壹2贰3叁4肆5伍6陆7柒8捌9玖0零'.
*data DXSTR type STRING value ''.
DATA val TYPE p DECIMALS 2 .
val = i_val.
CLEAR