用VB把数字转成中文字符串.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:3 大小:35KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

用VB把数字转成中文字符串.doc

用VB把数字转成中文字符串.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

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