📄 dx.prg
字号:
************************人民币大写************************
func dx
para Zje
XX=ALLTRIM(STR(Zje,10,2))
DX=''
C1='零壹贰叁肆伍陆柒捌玖'
C2='分角 元拾佰仟万拾佰仟亿拾佰仟'
DT=LEN(XX)
DTAB=INT(DT/4)
DO WHILE DTAB>0
ZD=0
DT1=DT
DO WHILE .T.
IF VAL(SUBS(XX,LEN(XX)+1-DT1,1))<>0
ZD=1
EXIT
ENDIF
IF DT1=12 .OR. DT1=8 .OR. DT1=4
EXIT
ENDIF
DT1=DT1-1
ENDDO
IF ZD=0
DT=DT1
YY=SUBS(XX,LEN(XX)+2-DT,1)
IF YY='.' .OR. VAL(YY)<>0
IF DT>3 .AND. DT<7
DX=DX+IIF(LEN(XX)=4,'零元','元')
ELSE
DX=DX+'零'
ENDIF
ENDIF
DT=DT-1
ELSE
ZERO=1
DO WHILE .T.
Y=SUBS(XX,LEN(XX)+1-DT,1)
IF VAL(Y)<>0
DX=DX+SUBS(C1,VAL(Y)*2+1,2)+SUBS(C2,(DT-4)*2+7,2)
ZERO=1
ELSE
ZD=0
DT1=DT
DO WHILE .T.
IF VAL(SUBS(XX,LEN(XX)+1-DT1,1))<>0
ZD=1
EXIT
ENDIF
IF DT1=12 .OR. DT1=8 .OR. DT1=4
EXIT
ENDIF
DT1=DT1-1
ENDDO
IF ZD=0
DX=DX+SUBS(C2,((INT(DT/4)*4)-4)*2+7,2)
DT=DT1
EXIT
ELSE
DX=DX+IIF(ZERO=1,'零','')
ZERO=0
ENDIF
ENDIF
IF DT=12 .OR. DT=8 .OR. DT=4
EXIT
ENDIF
DT=DT-1
ENDDO
DT=DT-1
ENDIF
DTAB=DTAB-1
ENDDO
X2=SUBS(XX,LEN(XX)+1-2,1)
X1=RIGH(XX,1)
IF VAL(X2)=0
IF VAL(X1)<>0
DX=DX+'零'+SUBS(C1,VAL(X1)*2+1,2)+'分'
ENDIF
ELSE
DX=DX+SUBS(C1,VAL(X2)*2+1,2)+'角'
DX=DX+IIF(VAL(X1)>0,SUBS(C1,VAL(X1)*2+1,2)+'分','')
ENDIF
if right(dx,2)<>'分'
dx=allt(dx)+'整'
endif
return dx
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -