以下是我以前幫別人寫的作業,用的是 VB,有註解,請參考:
Dim cName
Dim ar
Dim cNum As Integer
Dim cunit As String
Dim i As Integer
Dim cZero As Integer
Dim conver As String
Dim cLast As String
Private Sub Command1_Click()
ar = Array("零", "壹", "貳", "參", "肆", "伍", "陸", "柒", "捌", "玖")
cName = Array("", "", "拾", "佰", "仟", "萬", "拾", "佰", "仟", "億", "拾", "佰", "仟")
conver = ""
cLast = ""
cZero = 0
i = 1
For j = Len(Text1.Text) To 1 Step -1
cNum = Val(Mid(Text1.Text, i, 1))
cunit = cName(j) '取出位數
If cNum = 0 Then '判斷取出的數字是否為0,如果是0,則記錄共有幾0
cZero = cZero + 1
If (InStr("萬億", cunit) > 0 And (cLast = "")) Then '如果取出的是萬,億,則位數以萬億來補
cLast = cunit
End If
Else
If cZero > 0 Then '如果取出的數字0有n個,則以零代替所有的0
If InStr("萬億", Right(conver, 1)) = 0 Then
conver = conver + cLast '如果最後一位不是億,萬,則最後一位補上"億萬"
End If
conver = conver + "零"
cZero = 0
cLast = ""
End If
conver = conver + ar(cNum) + cunit '如果取出的數字沒有0,則是中文數字+單位
End If
i = i + 1
Next
'判斷數字的最後一位是否為0,如果最後一位為0,則把萬億補上
If InStr("萬億", Right(conver, 1)) = 0 Then
conver = conver + cLast '如果最後一位不是億,萬,則最後一位補上"億萬"
End If
Text2.Text = "新台幣" & conver & "元整"
End Sub