日期:2009-02-16  浏览次数:21343 次

建议入精华,方便需要写英文软件的朋友!

<%

FUNCTION convertsz(sz)

'PARAMETERS sz

'PRIVATE xs,sz1,sz2,sz3

IF sz > 1000000000 then '超过处理范围提示

convertsz="Number is too big" '数字大于10亿,超过处理范围!
exit FUNCTION
END IF

sz=INT(sz*100+0.5)/100 ' 小数超过两位四舍五入

xs=((sz-int(sz))*100) MOD 100 ' 取小数点后两位有效数字

IF xs>0 then

'cha=" AND"&conv3(xs)&" CENTS" ' 转换小数
cha=" AND "&xs&" CENTS"

ELSE

cha=""

END IF

sz1=INT((sz MOD 1000)) ' sz1为百、十、个3位数字

sz=INT(sz/1000) ' sz为千位以上数字(含千位)

cha=conv3(sz1)&cha ' 转换(sz1)

IF sz>0 then

sz2=(sz MOD 1000) ' sz2为十万、万、千3位数字

sz=INT(sz/1000) ' sz为百万位以上数字(含百万位)

IF sz2=0 then

IF sz1=0 then ' (sz2)如果为'0',判断在百位之前是否加'AND'

cha=cha

ELSE

cha=" AND"&cha

END IF

ELSE

cha=conv3(sz2)&" THOUSAND"&cha ' 如果不为'0'转换(sz2)

END IF

IF sz>0 then

sz3=(sz MOD 1000) ' sz3为亿、千万、百万3位数字

cha=conv3(sz3)&" MILLION"&cha ' 转换(sz3)

END IF

END IF

'cha="DOLLAR"&cha ' 在转换的结果之前加'DOLLAR'

'RETURN cha
convertsz=cha

end FUNCTION


FUNCTION conv3(je)

'PARAMETERS je

'PRIVATE jews,je1,je2,je3,tmp

IF je<=0 then

convertsz=""
exit FUNCTION

END IF

je1=(je MOD 10)

je=INT(je/10)

IF je=0 then ' 判断数字位数(1-3)并把3位数字分别存放在je1、je2、je3中

jews=1

ELSE

je2=(je MOD 10)

je=INT(je/10)

IF je=0 then

jews=2

ELSE

je3=(je MOD 10)

jews=3

END IF

END IF

IF jews=1 then

tmp=conv1(je1) '如果位数为1,直接转换

conv3=tmp

'exit FUNCTION
'RETURN tmp

ELSE

IF je1+10*je2<20 then ' 转换20以下数字

tmp=conv1(je1+10*je2)

ELSE ' 转换20-99数字

IF je1=0 then

tmp=conv2(je2)

ELSE

'tmp=conv2(je2)&" -"&conv1(je1)
tmp=conv2(je2)&conv1(je1)


END IF

END IF

IF jews=3 then '转换百位数字

IF je1+10*je2=0 then

tmp=conv1(je3)&" HUNDRED"

ELSE

IF je1+10*je2<20 then

tmp=conv1(je3)&&