金额大小写转换的asp完全无错版本
2018-09-06 13:12
<!--#include file=common.asp-->
<%
dim tmpnum
从第一张页面传过来的小写金额
tmpnum=request(page1num)
调用并显示大写金额
response.write rmb(cdbl(tmpnum))
response.end
%>
common.asp
<%
Function rmb(num)
num = FormatNumber(num, 2)
Dim numList
Dim rmbList
Dim numLen
Dim numChar
Dim numstr
Dim n
Dim n1, n2
Dim hz
numList = 零壹贰叁肆伍陆柒捌玖
rmbList = 分角元拾佰仟万拾佰仟亿拾佰仟万
If num > 9999999999999.99 Then
rmb = 超出范围的人民币值
Exit Function
End If
numstr = CStr(num * 100)
numLen = Len(numstr)
n = 1
Do While n <= numLen
numChar = CInt(Mid(numstr, n, 1))
n1 = Mid(numList, numChar + 1, 1)
n2 = Mid(rmbList, numLen - n + 1, 1)
If Not n1 = 零 Then
hz = hz + CStr(n1) + CStr(n2)
Else
If n2 = 亿 Or n2 = 万 Or n2 = 元 Or n1 = 零 Then
Do While Right(hz, 1) = 零
hz = Left(hz, Len(hz) - 1)
Loop
End If
If (n2 = 亿 Or (n2 = 万 And Right(hz, 1) <> 亿) Or n2 = 元) Then
hz = hz + CStr(n2)
Else
If Left(Right(hz, 2), 1) = 零 Or Right(hz, 1) <> 亿 Then
hz = hz + n1
End If
End If
End If
n = n + 1
Loop
Do While Right(hz, 1) = 零
hz = Left(hz, Len(hz) - 1)
Loop
If Right(hz, 1) = 元 Then
hz = hz + 整
End If
rmb = hz
End Function
%>
这个版本解决了小数位不能到分的问题,处理方式符合会计方式!
上一篇:制做行背景颜色交替变换的表格
下一篇:一个通用数据库显示程序