您的位置:首页 > 编程语言 > VB

钱小写转大写 VB

2016-01-19 20:29 573 查看
   Function DaXie(ByVal Num As String) As String         ' 

        If IsNumeric(Num) = False Then

            DaXie = ""

            Exit Function

        End If

        Dim Place As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"

        Dim Dn As String = "壹贰叁肆伍陆柒捌玖"

        Dim D1 As String = "整零元零零零万零零零亿零零零万"

        Dim FuHao As String

        If Num < 0 Then FuHao = "(负)"

        Num = Format(Math.Abs(CDbl(Num)), "0.00") * 100 'Replace(CStr(Format(CDbl(Num), "0.00")), ".", "") 

        If Num > 999999999999999.0 Then

            DaXie = ""

            Exit Function

        End If

        If Num = 0 Then

            DaXie = "零元零分"

            Exit Function

        End If

        Dim NumA As String

        NumA = Trim(Num)

        Dim NumLen As Integer = Len(NumA)

        Dim j As Integer

        Dim NumC As String

        For j = NumLen To 1 Step -1      ' 数字转换过程

            Dim temp As Double = Val(Mid(NumA, NumLen - j + 1, 1))

            If temp <> 0 Then              ' 非零数字转换

                NumC = NumC & Mid(Dn, temp, 1) & Mid(Place, j, 1)

            Else                           ' 数字零的转换

                If Right(NumC, 1) <> "零" Then

                    NumC = NumC & Mid(D1, j, 1)

                Else

                    Select Case j             ' 特殊数位转换

                        Case 1

                            NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1)

                        Case 3, 11

                            NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"

                        Case 7

                            If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then

                                NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, j, 1) & "零"

                            End If

                        Case Else

                    End Select

                End If

            End If

        Next

        DaXie = FuHao & Trim(NumC)

    End Function
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: