给你一个转换程序,这个程序对于9位整数的金额是可以转换为符合习惯的大写数字。
je0=int(金额) &&取整数部份
je1=金额-je0 &&取小数部份
je1=je1*100 &&将小数变为两位整数
jec=alltr(str(je0)) &&将整数部份由数值型转换为字符型
ws=len(jec) &&计算整数部份长度
sz='零壹贰叁肆伍陆柒捌玖拾' &&汉字数字
dw='元拾佰仟万拾佰仟亿拾佰仟' &&汉字单位
if je1>0 &&进行小数部份转换
if je1>9 &&角位不为零
jed=subs(sz,int(je1/10)*2+1,2)+'角'
else &&角位为零
jed='零'
endif
je1=je1-int(je1/10)*10 &&计算分位
if je1>0 &&分大于零
jed=jed+subs(sz,je1*2+1,2)+'分'
else
jed=jed+'整'
endif
else
jed='整' &&角分位为零
endif
w0=.t. &&判断是否有连续零时使用
for i=1 to ws &&转换整数部份
s1=val(subs(jec,ws-i+1,1)) &&取出当前位
if s1=0 &&本位为零
if i=1.or.i=5.or.i=9 &&在元、万、亿位上
jed=subs(dw,i*2-1,2)+jed &&加单位、不加零
else
if w0 &&非连续零
jed='零'+jed &&加零不加单位
endif
endif
w0=.f. &&置已经有一个零标志
else &&本位不为零
jed=subs(sz,s1*2+1,2)+subs(dw,i*2-1,2)+jed
w0=.t. &&置非零标志
endif
endfor
repl 大写 with jed &&将大写金额赋予字段"大写"