打印本文 关闭窗口 | |
金额转换算法 | |
作者:未知 文章来源:网络文摘 点击数 更新时间:2006/5/6 12:47:37 文章录入:admin 责任编辑:admin | |
|
|
Dim str As String str = Me.TextBox1.Text.Trim Dim isfs As Boolean If Left(str, 1) = "-" Then isfs = True str = str.Remove(0, 1) Else isfs = False End If Dim strpoint As String Dim point() As String Dim j As Int16 Dim jj() As String Dim jjj As String jjj = "" If str.IndexOf(".") <> -1 Then point = Split(str, ".", -1, CompareMethod.Text) str = point(0) strpoint = point(1) ReDim jj(strpoint.Length - 1) For j = 0 To strpoint.Length - 1 jj(j) = Left(strpoint, 1) strpoint = Right(strpoint, strpoint.Length - 1) jjj = jjj + convert(jj(j)) Next End If Dim strcode As String strcode = "" While strcode.Length <= str.Length strcode = strcode & "2345" & "2346" End While strcode = "1" & strcode strcode = Left(strcode, str.Length) Dim i As Int16 Dim a() As String Dim strcode1 As String Dim countstr As Int16 Dim strcode2 As String countstr = strcode.Length ReDim a(strcode.Length - 1) For i = 0 To countstr - 1 a(i) = Right(strcode, 1) strcode = Left(strcode, strcode.Length - 1) strcode1 = strcode1 & a(i) strcode2 = strcode2 & "," & Mid(str, i + 1, 1) & Mid(strcode1, i + 1, 1) Next strcode2 = Right(strcode2, strcode2.Length - 1) Dim newstr() As String newstr = Split(strcode2, ",", -1, CompareMethod.Text) Dim ii As Int16 Dim laststr As String Dim strcode3 As String Dim leftstr As String Dim rightstr As String For ii = 0 To newstr.Length - 1 strcode3 = newstr(ii) leftstr = Left(strcode3, 1) rightstr = Right(strcode3, 1) rightstr = Replace(rightstr, rightstr, convert2(rightstr)) leftstr = Replace(leftstr, leftstr, convert(leftstr)) If leftstr = "零" And (rightstr = "拾" Or rightstr = "佰" Or rightstr = "仟") Then rightstr = "" End If If leftstr = "零" And (rightstr = "万" Or rightstr = "亿") Then leftstr = "" End If strcode3 = leftstr & rightstr laststr = laststr & strcode3 Next While laststr.IndexOf("佰零万") <> -1 laststr = laststr.Replace("零万", "万") End While While laststr.IndexOf("仟零零万") <> -1 laststr = laststr.Replace("零零万", "万") End While While laststr.IndexOf("零万") <> -1 laststr = laststr.Replace("零万", "零") End While While laststr.IndexOf("零亿") <> -1 laststr = laststr.Replace("零亿", "亿") End While While laststr.IndexOf("零零") <> -1 laststr = laststr.Replace("零零", "零") End While While Right(laststr, 1) = "零" laststr = Left(laststr, laststr.Length - 1) End While If isfs = True Then laststr = "负" & laststr End If If jjj = "" Then TD2.InnerHtml = laststr Else If laststr = "" Then TD2.InnerHtml = "零点" & jjj Else TD2.InnerHtml = laststr & "点" & jjj End If End If End Sub Function convert(ByVal num As String) Select Case num Case "1" convert = "壹" Case "2" convert = "贰" Case "3" convert = "叁" Case "4" convert = "肆" Case "5" convert = "伍" Case "6" convert = "陆" Case "7" convert = "柒" Case "8" convert = "捌" Case "9" convert = "玖" Case "0" convert = "零" End Select End Function Function convert2(ByVal num As String) Select Case num Case "1" convert2 = "" Case "2" convert2 = "拾" Case "3" convert2 = "佰" Case "4" convert2 = "仟" Case "5" convert2 = "万" Case "6" convert2 = "亿" End Select End Function |
|
打印本文 关闭窗口 |