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

推荐订阅源

U
Unit 42
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
I
InfoQ
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
量子位
博客园 - 叶小钗
月光博客
月光博客
IT之家
IT之家
G
Google Developers Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
S
SegmentFault 最新的问题
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
Vercel News
Vercel News
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享

博客园 - 奇远

网络记事本 用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