大哥门救救我,十万火急,在线等待!!!!!!!
现在公司需要我用PB编写一个函数,其功能是把阿拉伯数字的金额转换成相等的英文金额。比如24,657元转换成 TWENTY FOUR THOUSAND SIX HUNDERED AND FIFTY SEVEN
我由于接触PB时间短,不知道如何写,但是公司急用,我实在没办法请各位大哥帮个忙写给我,在这里我万分感谢了!!!!!!!!我在线等待!
问题点数:0、回复次数:5Top
1 楼eminena(俄罗斯方块)回复于 2003-08-01 08:17:28 得分 0
到陶清网站找一找!
http://www.pdriver.comTop
2 楼eminena(俄罗斯方块)回复于 2003-08-01 08:18:46 得分 0
在这里:
http://www.pdriver.com/display.asp?key_id=1478Top
3 楼eminena(俄罗斯方块)回复于 2003-08-01 08:19:20 得分 0
直接下载:
http://www.pdriver.com/pb/e-tran.zipTop
4 楼klbt(快乐白兔)回复于 2003-08-01 08:51:03 得分 0
与中文金额转换的原理类似,编写一个通用函数。Top
5 楼brightstar(反恐精英)回复于 2003-08-01 09:27:07 得分 0
global type uf_chgmontoeng from function_object
end type
forward prototypes
global function string uf_chgmontoeng (double inmoney)
end prototypes
global function string uf_chgmontoeng (double inmoney);string inparm,outparm,s1,s2,s3,inpoint
string dict_1[]
long nlengh,nn,mm,plengh,i
double dl_1,dl_2
//准备
dl_1 = Truncate(inmoney,0)
dl_2 = inmoney - dl_1
inparm = string(dl_1)
nlengh = len(inparm)
inpoint = string(dl_2,"0.00")
dict_1[1] = "one"
dict_1[2] = "two"
dict_1[3] = "three"
dict_1[4] = "four"
dict_1[5] = "five"
dict_1[6] = "six"
dict_1[7] = "seven"
dict_1[8] = "eight"
dict_1[9] = "nine"
dict_1[10] = "ten"
dict_1[11] = "eleven"
dict_1[12] = "twelve"
dict_1[13] = "thirteen"
dict_1[14] = "fourteen"
dict_1[15] = "fifteen"
dict_1[16] = "sixteen"
dict_1[17] = "seventeen"
dict_1[18] = "eighteen"
dict_1[19] = "nineteen"
dict_1[20] = "twenty"
dict_1[30] = "thirty"
dict_1[40] = "fourty"
dict_1[50] = "fifty"
dict_1[60] = "sixty"
dict_1[70] = "seventy"
dict_1[80] = "eighty"
dict_1[90] = "ninety"
//转换整数部分
choose case nlengh
case 1
nn = long(inparm)
if nn <> 0 then
outparm = dict_1[nn]
else
outparm =""
end if
case 2
nn = long(inparm)
mm = mod(nn,10)
if mm = 0 or mid(inparm,1,1) = "1" then
outparm = dict_1[nn]
else
s1 = mid(inparm,1,1)
s2 = mid(inparm,2,1)
s1 = string(long(s1) * 10 )
outparm = uf_chgmontoeng(long(s1)) + "-" + uf_chgmontoeng(long(s2))
end if
case 3
s1 = mid(inparm,1,1)
s2 = mid(inparm,2,2)
if s2 <> '00' then
outparm = uf_chgmontoeng(long(s1)) + " hundred and " + uf_chgmontoeng(long(s2))
else
outparm = uf_chgmontoeng(long(s1)) + " hundred " + uf_chgmontoeng(long(s2))
end if
case 4
s1 = mid(inparm,1,1)
s2 = mid(inparm,2,3)
outparm = uf_chgmontoeng(long(s1)) + " thousand " + uf_chgmontoeng(long(s2))
case 5
s1 = mid(inparm,1,2)
s2 = mid(inparm,3,3)
outparm = uf_chgmontoeng(long(s1)) + " thousand " + uf_chgmontoeng(long(s2))
case 6
s1 = mid(inparm,1,3)
s2 = mid(inparm,4,3)
outparm = uf_chgmontoeng(long(s1)) + " thousand " + uf_chgmontoeng(long(s2))
case 7
s1 = mid(inparm,1,1)
s2 = mid(inparm,2,6)
outparm = uf_chgmontoeng(long(s1)) + " million " + uf_chgmontoeng(long(s2))
case 8
s1 = mid(inparm,1,2)
s2 = mid(inparm,3,6)
outparm = uf_chgmontoeng(long(s1)) + " million " + uf_chgmontoeng(long(s2))
case 9
s1 = mid(inparm,1,3)
s2 = mid(inparm,4,6)
outparm = uf_chgmontoeng(long(s1)) + " million " + uf_chgmontoeng(long(s2))
end choose
//小数转换
if inpoint <> '0.00' then
if long(inparm) <> 0 then
outparm = outparm + " point"
else
outparm = outparm + "zero point"
end if
inpoint = mid(inpoint,3,len(inpoint))
for i = 1 to len(inpoint)
nn = long(mid(inpoint,i,1))
if nn = 0 then
if i<>len(inpoint) then
outparm = outparm + " zero"
else
outparm = outparm
end if
else
outparm = outparm + " " +dict_1[nn]
end if
next
end if
return outparm
end functionTop



