作者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