惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
B
Blog
博客园_首页
博客园 - 司徒正美
有赞技术团队
有赞技术团队
博客园 - 聂微东
I
InfoQ
美团技术团队
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

博客园 - 奇远

网络记事本 用google检索email 读注册表 - 奇远 - 博客园 Crystal Report 部署 按钮控件数组 读写xml - 奇远 - 博客园 vb.net发邮件 - 奇远 - 博客园 VB.NET程序只能启动一次 - 奇远 - 博客园 dataset遍历表中的数据 - 奇远 - 博客园 vb.net自定义纸张大小 - 奇远 - 博客园 怎样使用水晶报表的推模式? SQL查询语句精华使用简要 vb.net事务处理 各种连接字符串设置 CREATE PROCEDURE 中文转换成拼音函数 运行时动态添加和删除控件 VB类Class设计 VB读写注册表
将数字串转换为中文金额字符串
奇远 · 2006-08-27 · via 博客园 - 奇远

 '*************************************************************************************************************

    Public Function ConvCap(ByVal valstr) As String
        ConvCap = Choose(Val(valstr) + 1, "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
    End Function
    '**************************************************************************
    '函数用途:将数字串转换为中文金额字符串
    '入口参数:Digital 要转换的数字串
    '返回参数:中文金额字符串
    '限制:Digital小于1亿
    '*************************************************************************
    Public Function ConvToMoney(ByVal Digital As String) As String
        Dim strChi(11), strDig(10) As String
        Dim stmp, rsStr As String
        Dim lenStr As Byte
        Dim laststr As String
        'Dim DigiToChi As String


        If Not IsNumeric(Digital) Then
            ConvToMoney = ""
            Exit Function
        End If

        If Val(Format(Digital)) < 0 Then
            Digital = Trim(Str(Abs(Val(Format(Digital)))))
            laststr = "整(负)"
        Else
            laststr = "整"
        End If

        strChi(0) = "分"
        strChi(1) = "角"
        strChi(2) = "元"
        strChi(3) = "拾"
        strChi(4) = "佰"
        strChi(5) = "仟"
        strChi(6) = "万"
        strChi(7) = "拾"
        strChi(8) = "佰"
        strChi(9) = "仟"
        strChi(10) = "亿"
        strDig(0) = "零"
        strDig(1) = "壹"
        strDig(2) = "贰"
        strDig(3) = "叁"
        strDig(4) = "肆"
        strDig(5) = "伍"
        strDig(6) = "陆"
        strDig(7) = "柒"
        strDig(8) = "捌"
        strDig(9) = "玖"
        Dim DigiToChi As String
        stmp = Digital
        If (Len(stmp) = 0) Or (Len(stmp) > 11) Then
            DigiToChi = ""
            Exit Function
        End If
        stmp = Format(stmp, "########.00")
        If Len(stmp) > 11 Then
            DigiToChi = ""
            Exit Function
        End If

        lenStr = Len(stmp)


        rsStr = strDig(Val(Mid(stmp, lenStr - 1, 1))) & strChi(1) & strDig(Val(Right(stmp, 1))) & strChi(0)
        stmp = Left(stmp, Len(stmp) - 3)
        Dim I, d As Byte
        Dim blnZero As Boolean
        Dim stmprv, dstr As String

        For I = 1 To Len(stmp)
            stmprv = Mid(stmp, I, 1) & stmprv
        Next

        For I = 1 To Len(stmprv)
            d = Val(Mid(stmprv, I, 1))
            If d = 0 Then
                If I = 1 Or I = 5 Then
                    dstr = strChi(I + 1)
                Else
                    If Not blnZero Then
                        dstr = strDig(0)
                    Else
                        dstr = ""
                    End If
                End If
                blnZero = True
            Else
                dstr = strDig(d) & strChi(I + 1)
                blnZero = False
            End If
            rsStr = dstr + rsStr
        Next
        ConvToMoney = rsStr & laststr
    End Function

    Public Function GetBitStr(ByVal valstr As String, ByVal pos As Integer) As String
        Select Case pos
            Case 1
                GetBitStr = ConvCap(valstr) + "元"
            Case 2
                GetBitStr = ConvCap(valstr) + "拾"
            Case 3
                GetBitStr = ConvCap(valstr) + "百"
            Case 4
                GetBitStr = ConvCap(valstr) + "千"
            Case 5
                GetBitStr = ConvCap(valstr) + "万"
            Case 6
                GetBitStr = ConvCap(valstr) + "十万"
            Case 7
                GetBitStr = ConvCap(valstr) + "百万"
            Case 8
                GetBitStr = ConvCap(valstr) + "千万"
            Case 9
                GetBitStr = ConvCap(valstr) + "亿"
            Case -1
                GetBitStr = ConvCap(valstr) + "角"
            Case -2
                GetBitStr = ConvCap(valstr) + "分"
        End Select
    End Function