' 本模块生成汉字大写的金额
'
Option Explicit
' 名称: CCh
' 得到一位数字 N1 的汉字大写
' 0 返回 ""
Function CCh(N1)
As String
Select Case N1
Case 0
CCh = "零"
Case 1
CCh = "壹"
Case 2
CCh = "贰"
Case 3
CCh = "叁"
Case 4
CCh = "肆"
Case 5
CCh = "伍"
Case 6
CCh = "陆"
Case 7
CCh = "柒"
Case 8
CCh = "捌"
Case 9
CCh = "玖"
End Select
End Function '()Function
'名称: ChMoney
' 得到数字 N1 的汉字大写
' 最大为 千万位
' O 返回 ""
Public Function ChMoney(N1)
As String
Dim tMoney As String
Dim lMoney As String
Dim tn '小数位置
Dim ST1
As String
Dim T1 As String
Dim s1 As String
'临时STRING 小数部分
Dim s2
As String '1000 以内
Dim s3
As String '10000
If N1 =
0 Then
ChMoney = " "
Exit Function
End If
If N1 < 0
Then
ChMoney = "负"
+ ChMoney(Abs(N1))
Exit Function
End If
tMoney = Trim(Str(N1))
tn = InStr(tMoney, ".")
'小数位置
s1 = ""
If tn <>
0 Then
ST1 = Right(tMoney, Len(tMoney) - tn)
If ST1 <>
"" Then
T1 = Left(ST1, 1)
ST1 = Right(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s1 = s1 + CCh(Val(T1)) + "角"
End If
If ST1 <> ""
Then
T1 = Left(ST1, 1)
s1 = s1 + CCh(Val(T1)) + "分"
End If
End If
ST1 = Left(tMoney, tn - 1)
Else
ST1 = tMoney
End If
s2 = ""
If ST1 <>
"" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
s2 = CCh(Val(T1)) + s2
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s2 = CCh(Val(T1)) + "拾"
+ s2
Else
If Left(s2, 1) <>
"零" Then
s2 = "零" + s2
End If
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s2 = CCh(Val(T1)) + "佰"
+ s2
Else
If Left(s2, 1) <>
"零" Then
s2 = "零" + s2
End If
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s2 = CCh(Val(T1)) + "仟"
+ s2
Else
If Left(s2, 1) <>
"零" Then
s2 = "零" + s2
End If
End If
s3 = ""
If ST1 <>
"" Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
s3 = CCh(Val(T1)) + s3
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s3 = CCh(Val(T1)) + "拾"
+ s3
Else
If Left(s3, 1) <>
"零" Then
s3 = "零" + s3
End If
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s3 = CCh(Val(T1)) + "佰"
+ s3
Else
If Left(s3, 1) <>
"零" Then
s3 = "零" + s3
End If
End If
If ST1 <> ""
Then
T1 = Right(ST1, 1)
ST1 = Left(ST1, Len(ST1) - 1)
If T1 <>
"0" Then
s3 = CCh(Val(T1)) + "仟"
+ s3
End If
End If
If Right(s2, 1) =
"零" Then
s2 = Left(s2, Len(s2) - 1)
If Len(s3) >
0 Then
If Right(s3, 1) =
"零" Then
s3 = Left(s3, Len(s3) - 1)
s3 = s3 & "万"
End If
ChMoney = IIf(s3 & s2 = "", s1, s3 & s2 &
"元整" & s1)
End Function
简单明了型
Function RMBChinese(ByVal
Rmb As Double)
As String
On Error Resume Next
Dim Rmbexp As String, Rmbda
As String, Expda
As String, Lent
As Integer, Ntyp
As Integer, Icnt
As Integer, i
As Integer, Trmb
As String
Rmb = Format(Rmb, "###0.00")
If Rmb >
999999999999.99 Then
RMBChinese = "需转换的金额整数长度超过了12位!"
Exit Function
End If
Rmbexp = "分角元拾佰仟万拾佰仟亿拾佰仟"
Rmbda = "零壹贰叁肆伍陆柒捌玖"
Ntyp = 0
Trmb = Replace(CStr(Format(Rmb,
"0.00")),
".", "")
If Left(Trmb,
1) =
"-" Then
Trmb = Mid(Trmb, 2)
Ntyp = 1
End If
Expda = ""
Icnt = Len(Trmb)
For i =
1 To Icnt
Expda = Mid(Rmbda, Val(Mid(Trmb, Icnt - i + 1,
1)) +
1, 1) + IIf(Mid(Rmbexp, i,
1) =
"元", Mid(Rmbexp, i,
1) +
" ", Mid(Rmbexp, i,
1)) + Expda
Next
RMBChinese = IIf(Ntyp = 1,
"负" + Expda, Expda)
End Function
分享到:
相关推荐
g017 3维的breaKthrough游戏(8KB) 582,g016.zip 小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等...
(18KB) 39,rulerdemo.ZIP 一个很普通的标尺控件,有水平和垂直两种样式。(11KB) 40,prop20vb6.ZIP 可以实现与VB中属性栏同样的效果,如字体、颜色、浏览等(150KB) 41,ab2eval.EXE 使用 ...
(18KB) 39,rulerdemo.ZIP 一个很普通的标尺控件,有水平和垂直两种样式。(11KB) 40,prop20vb6.ZIP 可以实现与VB中属性栏同样的效果,如字体、颜色、浏览等(150KB) 41,ab2eval.EXE 使用 ...
g017 3维的breaKthrough游戏(8KB) 582,g016.zip 小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等...
DEMO版(269KB) 41,apipro.EXE 提供了35个与Windows API类似的功能,例如获得系统信息注册表操作等,对于VB新手是一个不错的工具,但对于熟悉API操作的老将没有多大实用价值,而且控件尺寸偏大(344KB) 42,...
DEMO版(269KB) 41,apipro.EXE 提供了35个与Windows API类似的功能,例如获得系统信息注册表操作等,对于VB新手是一个不错的工具,但对于熟悉API操作的老将没有多大实用价值,而且控件尺寸偏大(344KB) 42,...
giftobmp.ZIP 将gif文件转换成bmp文件的例子(5KB) 41,playwav.ZIP 两种播放wave文件的方法(2KB) 42,wrox.ZIP 播放wave, midi和avi文件(7KB) 43,syssnd.ZIP 播放系统声音并可改变系统...
IgnoreCase 属性 设置或返回 Boolean 值,指示模式搜索是否区分大小写。 Imp 运算符 执行两个表达式的逻辑隐含。 初始化事件 发生在创建相关类的实例时。 InputBox 函数 在对话框中显示提示,等待用户输入文本...
g017 3维的breaKthrough游戏(8KB) 582,g016.zip 小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等...
g017 3维的breaKthrough游戏(8KB) 582,g016.zip 小蜜蜂射击游戏源程序, 不仅演示了 vb 的图形操作技巧,键盘操作,还演示了怎样使用 npmod32.dll(已包含,免费) 来播mod,s3m,mpp,med,xm,it,mdz,itz,xmz,s3z 等...
DEMO版(269KB) 41,apipro.EXE 提供了35个与Windows API类似的功能,例如获得系统信息注册表操作等,对于VB新手是一个不错的工具,但对于熟悉API操作的老将没有多大实用价值,而且控件尺寸偏大(344KB) 42,...
忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几个小工具 你真的了解.NET中的String吗? .NET中的方法及其调用(一) 如何判断ArrayList,...
GetFileVersionInfoSize 针对包含了版本资源的一个文件,判断容纳文件版本信息需要一个多大的缓冲区 GetFullPathName 获取指定文件的完整路径名 GetLogicalDrives 判断系统中存在哪些逻辑驱动器字母 ...
字符串为 string 类型并可写成两种形式,即用引号引起来和用 @ 引起来。用引号引起来的字符串括在双引号 (") 内, 并且可以包含包括换码序列在内的任何字符用 @ 引起来的字符串以 @ 开头,并用双引号引起来。用 @ 引...
18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
15.2 识别两种基本的错误 244 15.3 使用Visual Basic的调试工具 246 15.3.1 使用断点 246 15.3.2 使用“即时”窗口 248 15.4 使用Try...Catch...Finally创建结构化错误处理程序 251 15.4.1 处理异常 253 ...
实际上C#就一般的操作来说,只是区分大小写和多了一个分号这两点与VB.NET不同其他都差不多啊。在ASP里面我们读取数据就直接用RECORDSET,然后在HTML代码里面穿插就可以显示了,但是ASP.NET讲究的是代码分离,如果...
支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。 使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...
6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? ...
对存储器的操作分为读操作和写操作两种。 有关储存器的基本术语和概念: 存储器通常分为内存储器〔内存〕和为存储器〔辅存〕,内存储器〔即内存〕用于存放 CPU要处理的数据和指令;外存储器〔即外存〕主要用于长期...