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