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

VB程序设计入门基础

-
  • 1970年01月01日 08:00

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

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

实现货币金额中文大写转换的程序

  • zgqtxwd
  • zgqtxwd
  • 2008-05-01 05:50:00
  • 275

Asp.net C# 数字<em>货币金额</em>转换为中英文<em>金额</em>写法

该资源是asp.net+c#页面程序,采用四种方法将数字<em>形式</em>的金额转换为中英文金额写法。... 数字<em>货币</em>转换成大写<em>货币金额</em>的JAvascript代码 C#中将数字<em>金额转</em>成英文大写金额的...
  • 2018年04月17日 00:00

如何将字符串或者数字转换成大写货币

今天去面试却遇到了这样一道题“如何将字符串或者数字转换成大写货币”,当时没有做出来,很气愤,于是就在网上查涉及如何将字符串或者数字转换成大写货币的方法,终于找出了如何做的方法^_^ 主要功能:1.  ...
  • daryl715
  • daryl715
  • 2007-04-03 23:18:00
  • 2241

数字转人民币

数字转人民币 import java.util.Arrays; public class Num2Rmb { private String[] hanArr = {&quot;零&q...
  • myonelotus
  • myonelotus
  • 2018-03-18 20:34:15
  • 9

.NET把小写数字金额转换成大写人民币金额的两种算法

private string DaXie(string money) { //将小写金额转换成大写金额 double MyNumber = Co...
  • flyingdream123
  • flyingdream123
  • 2016-07-22 11:19:16
  • 2544

转化为货币大写【转转】

'############################################################################# '货币转换为中文汉字表述 ' '函数...
  • loveheye
  • loveheye
  • 2010-08-09 16:50:00
  • 230

货币数字转换成中文大写的函数

这个函数与以前其他网友提供的结构大不相同, 是一个从高位到低位的算法, 更加符合语言习惯.//-----------------------------------------------------...
  • h98458
  • h98458
  • 2004-12-15 21:23:00
  • 1758

C#.net 货币格式转换

///         /// 输入Float格式数字,将其转换为货币表达方式         ///         /// 货币表达类型:0=带¥的货币表达方式;1=不带¥的货币表达方式...
  • hanshierlou
  • hanshierlou
  • 2013-04-25 09:21:33
  • 642
收藏助手
不良信息举报
您举报文章:VB中数字转金额
举报原因:
原因补充:

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