一个数字转换为人民币货币大写字符的函数(vb2005)

        在写程序时遇到要把数字转换为人民币货币大写形式,在网上搜了一气,搜出来的大多是用C#写的,偶看的吃力,也有用VB写的,但搬来用,得出的结果却不能令人满意,只有自己动手,丰衣足食,写出了以下Code:

 Private Function ConverString(ByVal Number As String) As String
        If IsNumeric(Number) = False Then
            Return "零元"
            Exit Function
        End If

        Dim aNumber() As String = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}
        Dim bNumber() As String = {"", "", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"}
        Dim cNumber() As String = {"", "角", "分"}
        Dim L As Integer, I As Integer
        Dim strLeft As String, strRight As String, l_strConver As String, r_strConver As String, strConver As String, bstrConver As String
        bstrConver = ""
        strConver = ""
        '分析数字中是否含有"."
        I = InStr(Number, ".", CompareMethod.Text)
        If I = 0 Then
            '如果没有含有.I就为给定字串的长度,左边的字串就为给定的字串,右边的字串为空
            I = Len(Number)
            strLeft = Number
            strRight = ""
        Else
            '如果含有,则从.分割左右两边的字串
            I -= 1
            strLeft = Mid(Number, 1, I)
            strRight = Mid(Number, I + 2)
        End If

        '计算小数点左面的数
        Dim n As Integer, val As Integer, x As Integer, p As Boolean
        x = I
        For n = 1 To I
            l_strConver = Mid(strLeft, n, 1)
            val = CInt(l_strConver)

            If val = 0 Then
                If p = False Then
                    strConver = strConver + aNumber(val)
                End If
                p = True
                Select Case bNumber(x)
                    Case "亿"
                        strConver = strConver + bNumber(x)
                        p = False
                    Case "万"
                        strConver = strConver + bNumber(x)
                        p = False
                End Select
            Else
                p = False
                strConver = strConver + aNumber(val) + bNumber(x)
            End If
            x -= 1
        Next
        strConver += "元"
        '替换掉结果中的部分零
        strConver = Replace(strConver, "零亿", "亿", 1, 1)
        strConver = Replace(strConver, "零万", "万", 1, 1)
        strConver = Replace(strConver, "零元", "元", 1, 1)

        '计算小数点右面的数
        L = Len(strRight)
        If L = 0 Then   '如果右面字串没有数字,则不用计算,有再计算
            strConver += "整"
        Else
            If CInt(strRight) > 0 Then
                For n = 1 To L
                    r_strConver = Mid(strRight, n, 1)
                    val = CInt(r_strConver)
                    bstrConver = bstrConver + aNumber(val) + cNumber(n)
                    bstrConver = Replace(bstrConver, "零角", "", 1, 1)
                    bstrConver = Replace(bstrConver, "零分", "", 1, 1)
                Next
                strConver += bstrConver
            Else
                strConver += "整"
            End If
        End If

        Return strConver
    End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值