货币大写转换函数的更新

2016-01-29 20:16 9 1 收藏

货币大写转换函数的更新,货币大写转换函数的更新

【 tulaoshi.com - ASP 】

<%
dim a '要转换成大写的金额
dim atoc '转换之后的值
Dim String1 '如下定义
Dim String2 '如下定义
Dim String3 '从原A值中取出的值
Dim I '循环变量
Dim J 'A的值乘以100的字符串长度
Dim Ch1 '数字的汉语读法
Dim Ch2 '数字位的汉字读法
Dim nZero '用来计算连续的零值是几个

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

String1 = "零壹贰叁肆伍陆柒捌玖"
String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"
nZero = 0

If InStr(1, CStr(a * 100), ".") < 0 Then
err.Raise 5000, , "此函数( AtoC() )只能转换小数点后有两位以内的数!"
End If

J = Len(CStr(a * 100))
String2 = Right(String2, J) '取出对应位数的STRING2的值

For I = 1 To J
String3 = Mid(a * 100, I, 1) '取出需转换的某一位的值

If I < (J - 3) + 1 And I < (J - 7) + 1 And I < (J - 11) + 1 And I <(J - 15) + 1 Then
If String3 = 0 Then
Ch1 = ""
Ch2 = ""
nZero = nZero + 1
ElseIf String3 < 0 And nZero < 0 Then
Ch1 = "零" & Mid(String1, clng(String3) + 1, 1)
Ch2 = Mid(String2, I, 1)
nZero = 0
Else
Ch1 = Mid(String1, clng(String3) + 1, 1)
Ch2 = Mid(String2, I, 1)
nZero = 0
End If
Else '该位是万亿,亿,万,元位等关键位
If String3 < 0 And nZero < 0 Then
Ch1 = "零" & Mid(String1, clng(String3) + 1, 1)
Ch2 = Mid(String2, I, 1)
nZero = 0
ElseIf String3 < 0 And nZero = 0 Then
Ch1 = Mid(String1, clng(String3) + 1, 1)
Ch2 = Mid(String2, I, 1)
nZero = 0
ElseIf String3 = 0 And nZero = 3 Then
Ch1 = ""
Ch2 = ""
nZero = nZero + 1
Else
Ch1 = ""
Ch2 = Mid(String2, I, 1)
nZero = nZero + 1
End If

If I = (J - 11) + 1 Or I = (J - 3) + 1 Then '如果该位是亿位或元位,则必须写上
Ch2 = Mid(String2, I, 1)
End If

End If
AtoC = AtoC & Ch1 & Ch2

If I = J And String3 = 0 Then '最后一位(分)为0时,加上“整”
AtoC = AtoC & "整"
End If

Next
if a=0 then
atoc="零元整"
end if
%

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

来源:http://www.tulaoshi.com/n/20160129/1510926.html

延伸阅读
标签: 电脑入门
经常用WPS在处理财务报表时,你肯定用过WPS一个很实用的功能自动转换大写格式. 当你在单元格格式设置为"人民币大写"后,当你输入的数字的时候WPS自动转换大写, 如你输入321 就会显示为"叁佰贰拾壹元整" 但这有一个缺点就是当你输入负数的时候, 他不会识别, 如你输入:-123, 也会显示为红色的壹佰贰拾叁元整,打印出来后...
标签: ASP
  function new_str(str) if instr(str,chr(34))<0 and str<"" then   str_split=split(str,chr(34))   i=1   str_s=""   for j=0 to ubound(str_split)-1    if i mod 2 then     str_s=str_s&str_split(j)&"“&quo...
标签: 电脑入门
要将人民币小写金额转换成大写格式,用Excel提供的格式,将自定义格式类型中的[dbnum2]G/通用格式改为[dbnum2] G/通用格式元来实现。但在转换小数时却出现了问题,比如¥6,050.09只能转换为陆仟零伍拾.零玖圆。那么用Excel能不能解决这一先天不足呢?其方法有以下两种(以下均对B1转换,假设B1是通过函数ROUND( )四舍五入取得二位小数的小写金...
标签: 办公软件
要将人民币小写金额转换成大写格式,用Excel提供的格式,将自定义格式类型中的“[dbnum2]G/通用格式”改为“[dbnum2] G/通用格式“元””来实现。但在转换小数时却出现了问题,比如¥6,050.09只能转换为“陆仟零伍拾.零玖圆”。那么用Excel能不能解决这一先天不足呢?其方法有以下两种(以下均对B1转换,假设B1是通过函数ROUND( )四舍五入取得...
标签: Web开发
运用了正则表达式的功能,除了可以正确的转换成人民币的大写形式以外,还可以判断输入的形式是否正确有效。 将人民币数字转换成大写形式 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

经验教程

336

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部