日期:2014-05-17  浏览次数:21126 次

如何将金额的数字全部转换成大写汉字?
如何将数字全部转换成汉字?

涉及到金额的大小写的时候,如何把数字转换成大写的汉字?   比如把11000元转换成壹萬壹仟元?

------解决方案--------------------
<%
dim tmpnum
'从第一张页面传过来的小写金额
tmpnum=request( "page1num ")
'调用并显示大写金额
response.write rmb(cdbl(tmpnum))
response.end
%>

字串2


common.asp
<%
Function rmb(num) 字串2

num = FormatNumber(num, 2)
Dim numList
Dim rmbList
Dim numLen
Dim numChar
Dim numstr
Dim n
Dim n1, n2
Dim hz
numList = "零壹贰叁肆伍陆柒捌玖 "
rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万 "

字串1

If num > 9999999999999.99 Then
rmb = "超出范围的人民币值 "
Exit Function
End If

字串8


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) 字串5
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

字串3


%> 字串2


这个版本解决了小数位不能到分的问题,处理方式符合会计方式!

字串5

------解决方案--------------------
来个JS版的。


<script type= "text/javascript ">
<!--
function formatMoney(mnum)
{
var mnum = parseFloat(mnum);
var strOutput= " ",strTemp= " ",strInTemp= ' ';
var unitArray = new Array( "圆万亿 ", "仟佰拾 ", "零壹贰叁肆伍陆柒捌玖 ");
var mnumArray = mnum.toString().split( '. ');
var integralnum = mnumArray[0];
var integrallen = integralnum.length;
var decimalnum = (mnum.toString().indexOf( '. ')> =0) ? mnumArray[1].substr(0, 2) : '0 ';
var decimallen = decimalnum.length;
var ints = parseInt(integrallen/4);
var inty = integrallen%4;
if (ints> 3 || (ints==3 && inty> 0)) return "超出范围 ";
if (inty> 0)
{
ints++;
integralnum = "0000 ".substr(inty)+integralnum;
integrallen = integralnum.length;
}
var i = 0;
while (i <integrallen)
{
var strOutTemp = " ";
strTemp = integralnum.substr(i, 4);
i += 4;
for (var j=0; j <4; j++)
{
strInTemp = parseInt(strTemp.substr(j, 1));
strOutTemp += unitArray[2].substr(strInTemp, 1);
if (strInTemp> 0 && j <3) strOutTemp += unitArray[1].substr(j, 1);
}
strOutTemp = strOutTemp.replace(/零+$/, " ");
ints--;
if (strOutTemp!= " ") strOutTe