VB中数字转金额

原创 2005年02月27日 19:14:00

'//* 功能: 金额小写转换为大写  调用参数:jesj...人民币小写金额
'//* 返回变量: name..人民币大写金额
Public Function Fun_Jezh(Jesj As Double) As String
   
    Dim Name1$, Name2$, Mje1$, Name$
    Dim len_mje1%, k%, Ws%, j%, ws1%, m%
    Dim Bz As Boolean
    Name1 = "壹贰叁肆伍陆柒捌玖"
    Name2 = "分角元拾佰仟万拾佰仟亿拾佰仟"
    Mje1 = Trim(Format(Jesj, "###.00"))
    len_mje1 = Len(Mje1)
    If len_mje1 > 16 Or Jesj < 0.01 Or IsNull(Jesj) Then
        Fun_Jezh = ""
        Exit Function
    End If
    '//取无小数的字符串
    Mje1 = Left(Mje1, len_mje1 - 3) + Right(Mje1, 2)
    len_mje1 = len_mje1 - 1
    k = len_mje1 * 2 - 1
    Ws = Int(Mid(Mje1, 1, 1)) * 2 - 1

    If len_mje1 = 3 And Ws < 0 Then     '//如果金额<1 name=''
        Name = ""
    Else
        If Ws > 0 Then
            Name = MidB(Name1, Ws, 2) + MidB(Name2, k, 2) '//如果金额>=1,转换金额
        End If
    End If
    j = 2
    k = k - 2
    Bz = True
xh1:
    Do While j <= len_mje1 And Bz
        ws1 = Int(Mid(Mje1, j, 1)) * 2 - 1
        If ws1 > 0 Then
            Name = Name + MidB(Name1, ws1, 2) + MidB(Name2, k, 2)
            j = j + 1
            k = k - 2
            GoTo xh1
        End If
        m = 0
xh2:
        Do While ws1 < 0
            If len_mje1 >= 11 Then
                If k < 21 Then
                    m = m + 1
                End If
            End If
            If k = 5 Or (k = 13 And m <= 3) Or k = 21 Then
                Name = Name + MidB(Name2, k, 2)
            End If
            If k = 1 Then
                Name = Name + "整"
                Bz = False
                Exit Do
            End If
            j = j + 1
            k = k - 2
            ws1 = Int(Mid(Mje1, j, 1)) * 2 - 1
            If ws1 < 0 Then
                GoTo xh2
            Else
                If len_mje1 = 3 Then
                    Name = Name + "零"
                Else
                    Name = Name + "零"
                End If
            End If
        Loop
    Loop

    '去掉元和角之间零(1230.32)
    wz1 = InStr(1, Name, "元")
    wz2 = InStr(1, Name, "角")
    If wz1 <> 0 And wz2 <> 0 Then
        wz3 = InStr(wz1, Name, "零")
        If wz3 <> 0 Then
            Name = Mid(Name, 1, wz3 - 1) + Mid(Name, wz3 + 1, Len(Name))
        End If
    End If
    Fun_Jezh = Name

End Function

C#中将数字金额转成英文大写金额的函数

/// /// 数字转金额大写 /// 调用示例:String desc = CommonUtils.convertEnDes(new Decimal("100.55...
  • fyq891014
  • fyq891014
  • 2014年12月18日 17:52
  • 3200

java练习:金额转换,阿拉伯数字转换成中文传统形式

import java.util.Scanner; public class Test2 { public static void main(String[] args) { // TOD...
  • fmi110
  • fmi110
  • 2015年09月05日 12:39
  • 1682

java将金额数字转换成对应的汉字

将金额数字转换成对应的中文汉字
  • cool_summer_moon
  • cool_summer_moon
  • 2017年02月23日 20:39
  • 1791

java-数字金额大写转换

/** * 数字金额大写转换,思想先写个完整的然后将如零拾替换成零 要用到正则表达式 */ public static String digitUppercase(double n) { Str...
  • Leolu007
  • Leolu007
  • 2016年10月13日 09:41
  • 3060

js数字金额大写转换

/** 数字金额大写转换(可以处理整数,小数,负数) */ var digitUppercase = function(n) { var fraction = ['角', '分']; var ...
  • kongjiea
  • kongjiea
  • 2014年12月22日 12:33
  • 10138

数字转中文【适用于金额转换和普通数字转换】

数字转中文【适用于金额转换和普通数字转换】 作者:Vashon 时间:20151015        今天在公司的项目里有个地方需要将数字转换成中文在页面显示,然后写了一个粗糙的工具类(时间紧迫...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2015年10月15日 22:40
  • 2747

js转换金额为中文大写

js转换金额为中文大写: function changeMoneyToChinese(money){ var cnNums = new Array("零","壹","贰","叁","肆"...
  • gang_strong
  • gang_strong
  • 2016年11月02日 10:54
  • 3141

JAVA科学计数法,金额数字,转换为中文大写字

java操作金额
  • wangyonglin1123
  • wangyonglin1123
  • 2016年04月28日 13:46
  • 1787

java实现金钱数字转大写

private static final char [] ChineseNum ={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; private static ...
  • qiumin333
  • qiumin333
  • 2016年11月25日 19:55
  • 2828

SQL人民币小写金额转大写

--1、人民币小写金额转大写(第一版) ==================================================================== -- Title:...
  • tlammon
  • tlammon
  • 2016年04月05日 22:03
  • 1462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VB中数字转金额
举报原因:
原因补充:

(最多只允许输入30个字)