请问各位有没有谁写过金额转成英文的程序呢?
请问各位有没有谁写过金额转成英文的程序呢?如有能发一个给小弟啊,小弟现在要急用,先谢谢各位了。chzai@126.com 问题点数:50、回复次数:4Top
1 楼wu_07(一只狗不孤单,想一只狗才孤单)回复于 2005-12-26 16:15:50 得分 50
参考:
//* 将数字转换成英文大写 *//
// 字符型参数:aS_IN
// 返回值字符型:LS_OUT
String ls_out,ls_hun,ls_ten,ls_one,LS_ADD
Int li_num,li_one,li_ten,li_hun,LI_IN,i,j,k
//ls_out=" KGS ONLY"
i = 1
aS_IN = TRIM(aS_IN)//*
If aS_IN = "0" Or aS_IN = '' Or IsNull(aS_IN) Then
ls_out = "ZERO" + ls_out
Else
Do While aS_IN <> ""
li_num = Long(Right(aS_IN,3))
li_hun = Int(li_num / 100) //百位
li_ten = Int(Mod(li_num,100) / 10) //十位
li_one = Mod(li_num,10) //个位
If li_hun > 0 Then
Choose Case li_hun
case 1
ls_hun = "ONE HUNDRED "
case 2
ls_hun = "TWO HUNDRED "
case 3
ls_hun = "THREE HUNDRED "
case 4
ls_hun = "FOUR HUNDRED "
case 5
ls_hun = "FIVE HUNDRED "
case 6
ls_hun = "SIX HUNDRED "
case 7
ls_hun = "SEVEN HUNDRED "
case 8
ls_hun = "EIGHT HUNDRED "
case 9
ls_hun = "NINE HUNDRED "
End Choose
Else
ls_hun = ""
End If
If li_ten > 0 Then
LS_ADD = ""//*
Choose Case li_ten
Case 1
Choose Case li_one
Case 0
LS_ADD = "TEN "
CASE 1
LS_ADD = "ELEVEN "
CASE 2
LS_ADD = "TWELVE "
CASE 3
LS_ADD = "THIRTEEEN "
CASE 4
LS_ADD = "FORTEEN "
CASE 5
LS_ADD = "FIFTEEN "
CASE 6
LS_ADD = "SIXTEEN "
CASE 7
LS_ADD = "SEVENTEEN "
CASE 8
LS_ADD = "EIGHTEEN "
CASE 9
LS_ADD = "NINTEEN "
END CHOOSE
CASE 2
LS_TEN = "TWENTY"
CASE 3
LS_TEN = "THIRTY"
CASE 4
LS_TEN = "FORTY"
CASE 5
LS_TEN = "FIFTY"
CASE 6
LS_TEN = "SIXTY"
CASE 7
LS_TEN = "SEVENTY"
CASE 8
LS_TEN = "EIGHTY"
CASE 9
LS_TEN = "NINTY"
END CHOOSE
IF LI_ONE > 0 THEN
CHOOSE CASE LI_ONE
CASE 1
LS_ONE = "ONE "
CASE 2
LS_ONE = "TWO "
CASE 3
LS_ONE = "THREE "
CASE 4
LS_ONE = "FOUR "
CASE 5
LS_ONE = "FIVE "
CASE 6
LS_ONE = "SIX "
CASE 7
LS_ONE = "SEVEN "
CASE 8
LS_ONE = "EIGHT "
CASE 9
LS_ONE = "NINE "
END CHOOSE
ELSE
LS_ONE = ""
END IF
ELSE
LS_TEN = ""
IF LI_ONE > 0 THEN
CHOOSE CASE LI_ONE
CASE 1
LS_ONE = "ONE "
CASE 2
LS_ONE = "TWO "
CASE 3
LS_ONE = "THREE "
CASE 4
LS_ONE = "FOUR "
CASE 5
LS_ONE = "FIVE "
CASE 6
LS_ONE = "SIX "
CASE 7
LS_ONE = "SEVEN "
CASE 8
LS_ONE = "EIGHT "
CASE 9
LS_ONE = "NINE "
END CHOOSE
ELSE
LS_ONE = ""
END IF
END IF
IF LS_ADD = "" THEN
LS_ADD = LS_TEN + LS_ONE
IF LS_HUN <> "" AND LS_ADD <> "" THEN
LS_OUT = LS_HUN + " AND " + LS_ADD + LS_OUT
ELSE
LS_OUT = LS_HUN + LS_ADD + LS_OUT
END IF
ELSE
IF LS_HUN <> "" AND LS_ADD <> "" THEN
LS_OUT = LS_HUN + " AND " + LS_ADD + LS_OUT
ELSE
LS_OUT = LS_HUN + LS_ADD + LS_OUT
END IF
END IF
LS_ADD = ""
LS_TEN = ""
LS_HUN = ""
J = LEN(aS_IN) - 3
aS_IN = LEFT(aS_IN,J)
IF aS_IN <> "" THEN
CHOOSE CASE I //用于写百万,千等
CASE 1
LS_OUT = "THOUSAND " + LS_OUT
CASE 2
LS_OUT = "MILLION AND " + LS_OUT
END CHOOSE
I = I + 1
END IF // // //
Loop
End If
//ls_out = "SAY " + ls_out
return(ls_out)Top
2 楼chzai(想我就罵我)回复于 2005-12-26 16:38:54 得分 0
先谢谢 wu_07(一只狗不孤单,想一只狗才孤单)
但好像有小数位的不能显示出小数点后的数据,有没有谁还有更完整的呢?Top
3 楼chzai(想我就罵我)回复于 2005-12-27 00:15:09 得分 0
各位兄弟姐妹进来说说啊!!Top
4 楼jojophak(我不是随便的人)回复于 2006-01-03 16:10:27 得分 0
没写过
你用在什么地方?Top




