如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
用VB把数字转成中文字符串发表日期:2002-09-13作者:李立华[原创]出处:根据数字的读法,写了一个把数字转成中文字符串的程序参数一为数字参数二为是不是反回人民币大写参数三为是不是直接读数字,否则带有十百等单位参数四为设置小数点后面的位数,默认为4使用方法是t=GetChinaNum(20005.000436,,,7)'返回“二千零五点零零零四三六”t=GetChinaNum(2005.436,True,,7)'返回“贰仟零伍元肆角肆分”t=GetChinaNum(2005.436,,True,7)'返加“二零零五点四三六”下面是程序代码FunctionGetChinaNum(otherNumAsDouble,OptionalisRMBAsBoolean,OptionalnumOptionAsBoolean,OptionaldotNumAsInteger)AsStringOnErrorResumeNextnum=Trim(Str(Int(otherNum)))IfisRMBThennumwei="拾佰仟万拾佰仟亿拾佰仟"numshu="零壹贰叁肆伍陆柒捌玖拾"Elsenumwei="十百千万十百千亿十百千"numshu="零一二三四五六七八九十"EndIfIfotherNum<20AndotherNum>=10Thennum=Right(num,1)GetChinaNum=Left(numwei,1)EndIfFori=1ToLen(num)bstr=Mid(num,i,1)IfnumOptionThenGetChinaNum=GetChinaNum+Mid(numshu,Val(bstr)+1,1)ElseGetChinaNum=GetChinaNum+Mid(numshu,Val(bstr)+1,1)Ifbstr="0"ThenIfMid(numwei,Len(num)-i,1)="万"OrMid(numwei,Len(num)-i,1)="亿"ThenDoWhileRight(GetChinaNum,1)="零"GetChinaNum=Left(GetChinaNum,Len(GetChinaNum)-1)LoopGetChinaNum=GetChinaNum+Mid(numwei,Len(num)-i,1)EndIfElseGetChinaNum=GetChinaNum+Mid(numwei,Len(num)-i,1)EndIfGetChinaNum=Replace(GetChinaNum,"零零","零")EndIfNextiIfnumOption=FalseThenDoWhileRight(GetChinaNum,1)="零"GetChinaNum=Left(GetChinaNum,Len(GetChinaNum)-1)LoopEndIfIfisRMBThennumrmb="元角分"GetChinaNum=GetChinaNum+Mid(numrmb,1,1)IfVal(num)<>otherNumThennum=Trim(Str(Round(otherNum-Val(num),2)))Fori=2ToLen(num)bstr=Mid(num,i,1)GetChinaNum=GetChinaNum+Mid(numshu,Val(bstr)+1,1)+Mid(numrmb,i,1)NextiElseGetChinaNum=GetChinaNum+"整"EndIfElseIfVal(num)<>otherNumThenIfdotNum=0ThendotNum=4num=Trim(CStr(Round(otherNum-Val(num),dotNum)))IfGetChinaNum=""ThenGetChinaNum="零"GetChinaNum=GetChinaNum+"点"Fori=2ToLen(num)bstr=Mid(num,i,1)GetChinaNum=GetChinaNum+Mid(numshu,Val(bstr)+1,1)NextiEndIfEndIfEndFunction