用VB把数字转成中文字符串_vb字符串转换函数
用VB把数字转成中文字符串由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vb字符串转换函数”。
用VB把数字转成中文字符串
发表日期:2002-09-13作者:李立华[原创] 出处:
根据数字的读法,写了一个把数字转成中文字符串的程序
参数一为数字
参数二为是不是反回人民币大写
参数三为是不是直接读数字,否则带有十百等单位
参数四为设置小数点后面的位数,默认为4
使用方法是
t=GetChinaNum(20005.000436, , , 7)'返回 “二千零五点零零零四三六”t=GetChinaNum(2005.436, True, , 7)'返回“贰仟零伍元肆角肆分”
t=GetChinaNum(2005.436, , True, 7)'返加“二零零五点四三六”
下面是程序代码
Function GetChinaNum(otherNum As Double, Optional isRMB As Boolean, Optional numOption As Boolean, Optional dotNum As Integer)As String
On Error Resume Next
num = Trim(Str(Int(otherNum)))
If isRMB Then
numwei = “拾佰仟万拾佰仟亿拾佰仟”
numshu = “零壹贰叁肆伍陆柒捌玖拾”
Else
numwei = “十百千万十百千亿十百千”
numshu = “零一二三四五六七八九十”
End If
If otherNum = 10 Then
num = Right(num, 1)
GetChinaNum = Left(numwei, 1)
End If
For i = 1 To Len(num)
bstr = Mid(num, i, 1)
If numOption Then
GetChinaNum = GetChinaNum + Mid(numshu, Val(bstr)+ 1, 1)
Else
GetChinaNum = GetChinaNum + Mid(numshu, Val(bstr)+ 1, 1)
If bstr = “0” Then
If Mid(numwei, Len(num)i, 1)= “亿” Then
Do While Right(GetChinaNum, 1)= “零”
GetChinaNum = Left(GetChinaNum, Len(GetChinaNum)i, 1)
End If
Else
GetChinaNum = GetChinaNum + Mid(numwei, Len(num)1)
Loop
End If
If isRMB Then
numrmb = “元角分”
GetChinaNum = GetChinaNum + Mid(numrmb, 1, 1)
If Val(num)otherNum Then
num = Trim(Str(Round(otherNumVal(num), dotNum)))
If GetChinaNum = “” Then GetChinaNum = “零”
GetChinaNum = GetChinaNum + “点”
For i = 2 To Len(num)
bstr = Mid(num, i, 1)i, 1)
GetChinaNum = GetChinaNum + Mid(numshu, Val(bstr)+ 1, 1)Next i
End If
End If
End Function