作者bbsi (白吉胜)
看板Visual_Basic
标题[VB6 ] 有关於阿拉伯数字转成中文字金额问题
时间Thu Aug 24 12:52:00 2006
小弟是这样写的....
Dim a(7)
Dim i, j, k, num As Integer
Dim m, n As Double
m = 1000000
n = Text1.Text
For i = 1 To 7
a(i) = n \ m
n = n - (a(i) * m)
m = m / 10
Next i
For k = 1 To 7
If a(k) = 0 Then a(k) = "零"
If a(k) = 1 Then a(k) = "壹"
If a(k) = 2 Then a(k) = "贰"
If a(k) = 3 Then a(k) = "参"
If a(k) = 4 Then a(k) = "肆"
If a(k) = 5 Then a(k) = "伍"
If a(k) = 6 Then a(k) = "陆"
If a(k) = 7 Then a(k) = "柒"
If a(k) = 8 Then a(k) = "仈"
If a(k) = 9 Then a(k) = "玖"
Next k
num = Len(Text1.Text)
Select Case num
Case 7
Print a(1) & "佰" & a(2) & "拾" & a(3) & "万" & a(4) & "千" & a(5) & "百
" & a(6) & "拾" & a(7) & "元"
Case 6
Print a(2) & "拾" & a(3) & "万" & a(4) & "千" & a(5) & "百" & a(6) & "拾
" & a(7) & "元"
Case 5
Print a(3) & "万" & a(4) & "千" & a(5) & "百" & a(6) & "拾" & a(7) & "元
"
Case 4
Print a(4) & "千" & a(5) & "百" & a(6) & "拾" & a(7) & "元"
Case 3
Print a(5) & "百" & a(6) & "拾" & a(7) & "元"
Case 2
Print a(6) & "拾" & a(7) & "元"
Case 1
Print a(7) & "元"
End Select
End Sub
印出来的文字,如果每个位数都不是零的话,就还算正常
但如果输入 10300
就会变成 "壹万零仟三佰零拾零元" 这样算正确吗? 有没有可能把零的地方取消变
成 "壹万零参百元" 呢?
或者是说 有没有更简洁的方法呢??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.19.28
1F:推 BearWu:判断0的时候都不要输出字来呢?? 08/24 15:15
2F:推 bbsi:问题解决了..谢谢啦!!不过还是想要缩短一点 08/24 19:54
3F:推 fumizuki:我有写过,不过忘了怎麽写的了XD 而且位数没写这麽长XD 08/26 08:43
4F:→ fumizuki:再写一次的时候又写不出来了 囧 08/26 08:44