分享

求VF60下小写数自动转换大写数的控件或类|交流区

 木子六一 2012-05-31


PROC CHI_NUM
parameters num
PRIVATE cnum,cint,cpot
cnum=allt(str(abs(num),21,2))
cint=left(cnum,at(\'.\',cnum)-1)
cpot=allt(substr(cnum,at(\'.\',cnum)+1))
cpot1=left(cpot,1)
cpot2=substr(cpot,2,1)
do case
case val(cpot1)=0 and val(cpot2)=0
cw01=\'整\'
case val(cpot1)=0 and val(cpot2)>0
cw01=chi_number(cpot1)+chi_number(cpot2)+\'分\'
case val(cpot1)>0 and val(cpot2)=0
cw01=chi_number(cpot1)+\'角整\'
case val(cpot1)>0 and val(cpot2)>0
cw01=chi_number(cpot1)+\'角\'+chi_number(cpot2)+\'分\'
endcase
cw1=\' \'
n=len(cint)
for i=1 to n
do case
case ((n+1-i)-2)%4=0
cw2=\'拾\'
case ((n+1-i)-2)%4=1
cw2=\'佰\' 
case ((n+1-i)-2)%4=2
cw2=\'仟\'
case (n+1-i)=5 or (n+1-i)=13 
cw2=\'万\'
case (n+1-i)=9 or (n+1-i)=17
cw2=\'亿\'
case i=n
cw2=\'圆\'
endcase
do case
case substr(cint,i,1)<>\'0\' 
cw1=cw1 + chi_number(substr(cint,i,1))+cw2
case substr(cint,i,1)=\'0\' 
if i<n and substr(cint,i+1,1)<>\'0\' 
if (n+1-i)=5 or (n+1-i)=9 or (n+1-i)=13 or (n+1-i)=17 
cw1=cw1+cw2
else
cw1=cw1 + chi_number(substr(cint,i,1))
endif
else
if i=n or ((n+1-i)=5 and n<9) or (n+1-i)=9 or ((n+1-i)=13 and n<17) or (n+1-i)=17 
cw1=cw1+cw2
endif
endif
endcase
endfor
if num>0
cw=cw1+cw01+\'(正)\'
else
cw=cw1+cw01+\'(负)\'
endif 
return allt(cw)

PROC CHI_NUMBER
parameters number
private chi_word
do case
case number=\'0\'
chi_word=\'零\'
case number=\'1\'
chi_word=\'壹\'
case number=\'2\'
chi_word=\'贰\' 
case number=\'3\'
chi_word=\'叁\'
case number=\'4\'
chi_word=\'肆\'
case number=\'5\'
chi_word=\'伍\'
case number=\'6\'
chi_word=\'陆\'
case number=\'7\'
chi_word=\'柒\'
case number=\'8\'
chi_word=\'捌\' 
case number=\'9\'
chi_word=\'玖\' 
endcase
return chi_word

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多