在pb中用语音读金额(3)


/转换整整部分/
for i = 1 to len_int
/a为小写数字字符,b为对应的大写字符,c为对应大写单位,d为当前大写字符串的最后一个汉字/
a= mid(str_int,i,1)
a_int = long(a)
b = mid(dx_sz,(a_int*2)+1,2)
c = mid(dx_dw,((13 - len_int +i - 1)*2+1),2)
if dx_str<>"" then
d=mid(dx_str,len(dx_str)-1,2)
else
d= ""
end if

if (b="零") and ((d="零") or (b=b2) or (c="元") or (c="万") or (c="亿")) then b = ""
if (a="0") and (c<>"元") and (c<>"万") and (c<>"亿") then c=""
if ((c="元") or (c="万") or (c="亿")) and (d="零") and (a="0") then
dx_str = mid(dx_str,1,len(dx_str)-2)
d=mid(dx_str,len(dx_str)-1,2)
if ((c="元") and (d="万")) or ((c="万") and (d="亿")) then c = ""
end if
dx_str = dx_str + b+ c
b2 = b
next

/处理金额小于1的情况/
if len(dx_str) <= 2 then dx_str= ""
/转换小数部分/
if (num_dec<10) and (ls>0) then
a_int = long(str_dec)
b = mid(dx_sz,(a_int*2+1),2)
if num_dec = 0 then dx_str = dx_str + "整"
if num_dec > 0 then dx_str = dx_str +"零"+b+"分"
end if

if num_dec >= 10 then
a_int = long(mid(str_dec,1,1))
a = mid(dx_sz,(a_int2+1),2)
a_int = long(mid(str_dec,2,1))
b = mid(dx_sz,(a_int
2+1),2)
if a<>"零" then a = a+"角"
if b <> "零" then
b = b+"分"
else
b= ""
end if
dx_str = dx_str + a + b
end if
if ls= 0 then dx_str = "零元整"
dx_str = fu+dx_str

result = dx_str
return result

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus