/*file name:change.pbl
*函数:numberToEnglishAmt()
*功能:数字变成英文字母金额
*代码:PowerBuilder
*参数类型和返回类型
*string numberToEnglishAmt(decimal money)
*/
string s,s_left,s_right,s_left1,s_left2,s_left3,s_left4,s_left5,s_left6
string a,b,c,d,e,f,g
money=round(money,2)
s=string(money)
long l
l=len(s)
s_right=right(s,3)
s_left=left(s,len(s)-3)
s_right=right(s,2)
s_right=getWord(s_right)
l=l - 5
if l=7 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,2)
s_left3=getWord(s_left3)
l=l - 1
s_left4=mid(s,l+1,1)
s_left4=getWord(s_left4)
l=l - 2
s_left5=mid(s,l+1,2)
s_left5=getWord(s_left5)
l=l - 1
s_left6=mid(s,l+1,1)
s_left6=getWord(s_left6)
elseif l=6 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,2)
s_left3=getWord(s_left3)
l=l - 1
s_left4=mid(s,l+1,1)
s_left4=getWord(s_left4)
l=l - 2
s_left5=mid(s,l+1,2)
s_left5=getWord(s_left5)
elseif l=5 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,2)
s_left3=getWord(s_left3)
l=l - 1
s_left4=mid(s,l+1,1)
s_left4=getWord(s_left4)
l=l - 2
s_left5=mid(s,l+1,1)
s_left5=getWord(s_left5)
elseif l=4 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,2)
s_left3=getWord(s_left3)
l=l - 1
s_left4=mid(s,l+1,1)
s_left4=getWord(s_left4)
elseif l=3 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,2)
s_left3=getWord(s_left3)
elseif l=2 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
l=l - 2
s_left3=mid(s,l+1,1)
s_left3=getWord(s_left3)
elseif l=1 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
s_left2=mid(s,l,1)
s_left2=getWord(s_left2)
l=l - 1
elseif l=0 then
s_left1=right(s_left,2)
s_left1=getWord(s_left1)
elseif l=-1 then
s_left1=right(s_left,1)
s_left1=getWord(s_left1)
//elseif l=-2 then
end if
a=s_left6
b=s_left5
c=s_left4
d=s_left3
e=s_left2
f=s_left1
if a<>"" then
a=a+" HUNDRED "
else
a=""
end if
if a='' and b='' then
b=''
else
b=b+" MILLION "
end if
if a='' and b='' and c='' then
c=''
else
c=c+" HUNDRED "
end if
if a='' and b='' and c='' and d='' then
d=''
else
d=d+" THOUSAND AND "
end if
if e<>"" then
e=e+" HUNDRED "
else
e=""
end if
g=s_right
if g<>"" then
if a="" and b="" and c="" and d="" and e="" and f="" then
g=" CENTS "+g
else
g=" AND CENTS "+g
end if
else
g=""
end if
s=a+b+c+d+e+f+g+" ONLY"
return S
/******************************************************************/
/*file name:change.pbl
*函数:getWord()
*功能:数字金额变成英文式金额函数
*代码:PowerBuilder
*参数类型和返回类型
*string getWord(string in)
*/
string s_right,s_left,s
s=in
if long(s)<21 then
choose case long(s)
case 1
s_right="ONE"
case 2
s_right="TWO"
case 3
s_right="THREE"
case 4
s_right="FOUR"
case 5
s_right="FIVE"
case 6
s_right="SIX"
case 7
s_right="SEVEN"
case 8
s_right="EIGHT"
case 9
s_right="NINE"
case 10
s_right="TEN"
case 11
s_right="ELEVEN"
case 12
s_right="TWELVE"
case 13
s_right="THIRTEEN"
case 14
s_right="FOURTEEN"
case 15
s_right="FIFTEEN"
case 16
s_right="SIXTEEN"
case 17
s_right="SEVENTEEN"
case 18
s_right="EIGHTEEN"
case 19
s_right="NINETEEN"
case 20
s_right="TWENTY"
END CHOOSE
s=s_right
elseif long(s)>20 and long(s)<100 then
choose case right(string(s),1)
case "1"
s_right="ONE"
case "2"
s_right="TWO"
case "3"
s_right="THREE"
case "4"
s_right="FOUR"
case "5"
s_right="FIVE"
case "6"
s_right="SIX"
case "7"
s_right="SEVEN"
case "8"
s_right="EIGHT"
case "9"
s_right="NINE"
end choose
choose case left(string(s),1)
case "2"
s_left="TWENTY"
case "3"
s_left="THIRTY"
case "4"
s_left="FORTY"
case "5"
s_left="FIFTY"
case "6"
s_left="SIXTY"
case "7"
s_left="SEVENTY"
case "8"
s_left="EIGHTY"
case "9"
s_left="NINETY"
END CHOOSE
s=s_left+" "+s_right
end if
return s
/******************************************************************/
应用例子:
金额为136,233.78
翻译结果如下:
ONE HUNDRED THIRTY SIX THOUSAND AND TWO HUNDRED THIRTY THREE AND CENTS SEVENTY EIGHT ONLY
数字到英文金额的转换PB
最新推荐文章于 2023-12-20 10:21:14 发布