易人
传说中的水手
 
UID 70
精华
0
积分 809
帖子 809
阅读权限 1
注册 2002-4-22 来自 山东省
状态 离线
|
请大家帮看看有问题吗
好几年不写代码了,今受朋友之托,写了个小东西,担心里面有bug,要有高手过来,麻烦看看,或有更好的代码,发一个用用,不胜感激。
在foxpro里写的,将以万元为单位的货币转换成大写
*--- 货币小写转换成大写--------
local ss,cc,i,j,mark0,dw(14),dx(14),dd
FUNCTION Xtod(nXiao)
dw(1)="分"
dw(2)="角"
dw(3)="元"
dw(4)="拾"
dw(5)="佰"
dw(6)="仟"
dw(7)="万"
dw(8)="拾"
dw(9)="佰"
dw(10)="仟"
dw(11)="亿"
dw(12)="拾"
dw(13)="佰"
dw(14)="仟"
for j=1 to 14
dx(j)=""
endfor
ss=alltrim(str(nXiao*1000000))
ss=strtran(alltri(ss,"0","零")
ss=strtran(ss,"1","壹")
ss=strtran(ss,"2","贰")
ss=strtran(ss,"3","叁")
ss=strtran(ss,"4","肆")
ss=strtran(ss,"5","伍")
ss=strtran(ss,"6","陆")
ss=strtran(ss,"7","柒")
ss=strtran(ss,"8","捌")
ss=strtran(ss,"9","玖")
i=len(ss)/2
mark0=0
for j=1 to i
dd=substr(ss,i*2-j*2+1,2)
if dd !="零"
dx(j)=dd
mark0=1
else
if mark0 !=0
dx(j)=dd
dw(j)=""
mark0=0
else
dw(j)=""
mark0=0
endif
endif
endfor
dw(3)="元"
dw(7)="万"
dw(11)="亿"
if dx(3)=="零"
dx(3)=""
endif
if dx(7)=="零"
dx(7)=""
endif
if dx(11)=="零"
dx(11)=""
endif
cc=""
for j=1 to i
cc=dx(j)+dw(j)+cc
endfor
if right(cc,2)!="分"
cc=cc+"整"
endif
return(cc)
ENDFUNC
|
|