网络编程
位置:首页>> 网络编程>> Asp编程>> asp金额大小写转换完全无错版

asp金额大小写转换完全无错版

  发布时间:2007-09-26 09:38:00 

标签:大小写,转换,金额,asp

金额大小写转换的asp完全无错版本,  这个版本解决了小数位不能到分的问题,处理方式符合会计方式,值得推荐!


<!--#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 
   
  %> 


   


0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com