参数一为数字
参数二为是不是反回人民币大写
参数三为是不是直接读数字 否则带有十百等单位
参数四为设置小数点后面的位数 默认为
使用方法是
t=GetChinaNum( ) 返回 二千零五点零零零四三六
t=GetChinaNum( True ) 返回 贰仟零伍元肆角肆分
t=GetChinaNum( True ) 返加 二零零五点四三六
下面是程序代码
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 <And otherNum >= Then
num = Right(num )
GetChinaNum = Left(numwei )
End If
For i = To Len(num)
bstr = Mid(num i )
If numOption Then
GetChinaNum = GetChinaNum + Mid(numshu Val(bstr) + )
Else
GetChinaNum = GetChinaNum + Mid(numshu Val(bstr) + )
If bstr = Then
If Mid(numwei Len(num) i ) = 万 Or Mid(numwei Len(num) i ) = 亿 Then
Do While Right(GetChinaNum ) = 零
GetChinaNum = Left(GetChinaNum Len(GetChinaNum) )
Loop
GetChinaNum = GetChinaNum + Mid(numwei Len(num) i )
End If
Else
GetChinaNum = GetChinaNum + Mid(numwei Len(num) i )
End If
GetChinaNum = Replace(GetChinaNum 零零 零 )
End If
Next i
If numOption = False Then
Do While Right(GetChinaNum ) = 零
GetChinaNum = Left(GetChinaNum Len(GetChinaNum) )
Loop
End If
If isRMB Then
numrmb = 元角分
GetChinaNum = GetChinaNum + Mid(numrmb )
If Val(num) <>otherNum Then
num = Trim(Str(Round(otherNum Val(num) )))
For i = To Len(num)
bstr = Mid(num i )
GetChinaNum = GetChinaNum + Mid(numshu Val(bstr) + ) + Mid(numrmb i )
Next i
Else
GetChinaNum = GetChinaNum + 整
End If
Else
If Val(num) <>otherNum Then
If dotNum = Then dotNum =
num = Trim(CStr(Round(otherNum Val(num) dotNum)))
If GetChinaNum = Then GetChinaNum = 零
GetChinaNum = GetChinaNum + 点
For i = To Len(num)
bstr = Mid(num i )
GetChinaNum = GetChinaNum + Mid(numshu Val(bstr) + )
Next i
End If
End If
lishixinzhi/Article/program/net/201311/12736可以设置成中文。
这样开发的相应软件,在中文计算机系统中运行不会出错。但是要推广到其他语言的计算机系统,有可能会出错。
所以,最好的办法就是使用英文字母、拼音简写、数字等命名控件的Name属性。
中文版XP系统当然属于中文计算机系统,所以在你的机器上开发和运行运行的程序,控件的name属性就可以设置为中文。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)