编程论坛's Archiver

betterman 发表于 2008-6-10 22:06

求助:金额由小写转换为大写如何实现!

金额由小写转换为大写如何实现?
比如:100100012.70  自动变成:壹亿零壹拾万零壹拾贰元柒角整

啸凡 发表于 2008-6-10 22:32

本论坛上就有实例,自己查找一下。

hu9jj 发表于 2008-6-12 14:59

这是我原来从论坛中看到的,仅供参考!

1、编写如下函数。该函数的返回值能够舍去数字之间的零,比较准确,符合会计准则,比较适合打印银行存单等。
PARAMETERS nAmount
PRIVATE ALL LIKE L_*
L_S1='零壹贰叁肆伍陆柒捌玖'
L_S2='亿仟佰拾万仟佰拾亿仟佰拾万仟佰拾元角分'
nAmount=LTRIM(STR(nAmount*100,LEN(L_S2)/2))
L_LEN=LEN(nAmount)
L_SS2=RIGH(L_S2,2*L_LEN)
L_DX=''
L_0JS=0 &&连续零的个数
L_N=0
DO WHILE L_N<L_LEN
    L_N=L_N+1
    L_SZ=SUBSTR(nAmount,L_N,1)
    L_SZ=SUBSTR(L_S1,2*VAL(L_SZ)+1,2)
    L_DW=SUBSTR(L_SS2,2*L_N-1,2)
    IF L_SZ='零'
        L_SZ=''
        DO CASE
            CASE L_DW$'亿元'
            CASE L_DW='万'
                IF RIGH(L_DX,2)='亿'
                    L_DW=''
                ENDIF
            OTHERWISE
                L_DW=''
        ENDCASE
        L_0JS=L_0JS+1
    ELSE
        IF L_0JS>0
            L_SZ='零'+L_SZ
        ENDIF
        L_0JS=0
    ENDIF
    L_DX=L_DX+L_SZ+L_DW
ENDDO
L_DX=L_DX+IIF(RIGH(nAmount,1)='0','整','')
RETURN L_DX

caohong 发表于 2008-6-13 15:21

支持

支持 支持

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.