金额数值小写转大写函数

原创 2004年09月19日 15:33:00

刚写的一个函数,但只能对"亿"以下的数值有效.如果超过Long类型的数值范围则转换会出错!!!!
函数直接使用ChangeMoney(数值)即可!!得到的则是转换后的大写数额

以下是第一次写的:对0不起隐藏作用
<%
Response.Write(ChangeMoney(235))

Function ChangeMoney(sMoney)
On Error Resume Next
Dim sTo
Dim iInt,iMod
'取得整数
sMoney=sMoney / 1
If Err.Number<>0 Then
? ?Response.Write "数值太大!!不能转换!!"
? ?Response.End
End If
iInt=Len(sMoney)
If iInt>5 Then ? ?'超过万
? ?iMod=iInt-4
? ?sTo=ChangeTo(sMoney,iMod,1)
? ?iMod=4
? ?sTo=sTo&"万"
? ?sTo=sTo&ChangeTo(sMoney,iMod,0)&"元整"
Else
? ?sTo=ChangeTo(sMoney,iInt,0)&"元整"
End iF
ChangeMoney=sTo
End Function

Function ChangeTo(sMoney,iNum,iTo)
? ?Dim sTr
? ?Do While iNum>0
? ? ? sTr=sTr&GetMoney(sMoney,iNum,iTo)
? ? ? iNum=iNum-1 ?
? ?Loop
? ?ChangeTo=sTr
End Function

Function GetMoney(sMoney,iNum,iTo)
? ?Dim sMen,sStr,iLen
? ?iLen=Len(sMoney)-(iNum+iTo*5)+1+iTo
? ?sMen="零壹贰叄肆伍陆柒捌玖"
? ?Select Case iNum
? ? ?? ?? Case 5
? ? ? ? ? ? ? ?If iTo=1 Then
? ? ? ? ? ? ? ?? sStr="亿"
? ? ? ? ? ? ? ? ?Else
? ? ? ? ? ? ? ? ? ?sStr="万"
? ? ? ? ? ? ? ? ?End If
? ? ?? ?? Case 4
? ? ? ? ? ? ? ? sStr="千" ?
? ? ?? ?? Case 3
? ? ? ? ? ? ? ? sStr="百" ?
? ? ?? ?? Case 2
? ? ? ? ? ? ? ? sStr="十" ?
? ? ?? ?? Case else
? ? ? ? ? ? ? ? sStr=""
? ? ?End Select
? ? ?GetMoney=Mid(sMen,Cint(Mid(sMoney,iLen,1))+1,1)&sStr
End Function
%>

最后修改的,对连续的0起隐藏作用:

<%
Response.Write(ChangeMoney(2032400))

Function ChangeMoney(sMoney)
On Error Resume Next
Dim sTo
Dim iInt,iMod
'取得整数
sMoney=sMoney / 1
If Err.Number<>0 Then
?? Response.Write "数值太大!!不能转换!!"
?? Response.End
End If
If Left(sMoney,1)="0" Then
?? Response.Write "输入错误的数值!开头不能是0!"
?? Response.End
End If
iInt=Len(sMoney)
If iInt>5 Then??? '超过万
?? iMod=iInt-4
?? sTo=ChangeTo(sMoney,iMod,1)
?? iMod=4
?? sTo=sTo&"万"
?? sTo=sTo&ChangeTo(sMoney,iMod,0)&"元整"
Else
?? sTo=ChangeTo(sMoney,iInt,0)&"元整"
End iF
ChangeMoney=sTo
End Function

Function ChangeTo(sMoney,iNum,iTo)
?? Dim sTr
?? Do While iNum>0
????? sTr=sTr&GetMoney(sMoney,iNum,iTo)
????? iNum=iNum-1?
?? Loop
?? ChangeTo=sTr
End Function

Function GetMoney(sMoney,iNum,iTo)
?? Dim sMen,sStr,iLen,sNum,sVal
?? iLen=Len(sMoney)-(iNum+iTo*5)+1+iTo
?? sMen="零壹贰叄肆伍陆柒捌玖"
?? sVal=" 十百千万"
?? sStr=Mid(sVal,iNum,1)
?? If iNum=5 And iTo=1 Then?? '亿
????? sStr="亿"
?? End If
?? sNum=Mid(sMoney,iLen,1)
?? If sNum<>"0" Then
? GetMoney=Mid(sMen,Cint(sNum)+1,1)&trim(sStr)
?? Else
? GetMoney=""
?? End If
End Function
%>

 

出自:

鱼的天堂与地狱

用ASP将小写金额转成大写(函数)

ASP代码:Function rmb(num)num = FormatNumber(num, 2)Dim numList Dim rmbList Dim numLenDim numCharDim nu...
  • cncco
  • cncco
  • 2006年04月06日 12:36
  • 1186

大写金额转换成小写

Q:如何将大写金额转换成小写? A:简单点,格式比较严格private float getMoney(string strBig)        ...{            string strE...
  • jinjazz
  • jinjazz
  • 2007年12月04日 19:11
  • 2441

用PHP实现小写金额转换大写金额【精确到分】

/** *数字金额转换成中文大写金额的函数 *String Int $num 要转换的小写数字或小写字符串 *return 大写字母 *小数位为两位 **/ function get_...
  • jucrazy
  • jucrazy
  • 2012年01月03日 21:09
  • 4428

C语言实验——输入一个整数的小写金额值,转化为大写金额值并输出

#include #include void trans(int a) { if(a == 1)printf("壹"); else if(a == 2)print...
  • xxyy888
  • xxyy888
  • 2013年03月27日 15:49
  • 2480

js 将页面小写金额转换成大写金额

function changeChineseNumber(num) { if (isNaN(num) || num > Math.pow(10, 12)) return "" ...
  • u013806366
  • u013806366
  • 2014年10月27日 14:04
  • 1381

JS将人民币小写金额转换为大写

/** 数字金额大写转换(可以处理整数,小数,负数) */ function smalltoBIG(n) { var fraction = ['角', '分']; v...
  • k8080880
  • k8080880
  • 2016年12月07日 12:03
  • 662

C#金额小写转大写

public string ConvertMoney(decimal Money) { //金额转换程序 string MoneyNum...
  • lucky51222
  • lucky51222
  • 2014年05月20日 18:10
  • 1739

用java将小写的金额转换为大写的金额

package com.tzsw.emhr.relieft.rttpub;//import dori.jasper.engine.*;import java.util.ArrayList;import...
  • Explorerwen
  • Explorerwen
  • 2005年02月23日 14:10
  • 1375

JS金额小写转大写

function atoc(numberValue){var numberValue=new String(Math.round(numberValue*100)); // 数字金额var chine...
  • qiume
  • qiume
  • 2010年04月21日 23:13
  • 6250

SQL人民币小写金额转大写

--1、人民币小写金额转大写(第一版) ==================================================================== -- Title:...
  • tlammon
  • tlammon
  • 2016年04月05日 22:03
  • 1595
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:金额数值小写转大写函数
举报原因:
原因补充:

(最多只允许输入30个字)