更新时间2018-08-31 18:35:22
官网论坛里有很多,网址是:http://bbs.anjian.com/showforum-233-1.aspx
TracePrint 阿拉伯数字转中文读法(123456789012345, True)
'调试输出:壹佰贰拾叁兆肆仟伍佰陆拾柒亿捌仟玖佰零壹万贰仟叁佰肆拾伍
TracePrint 阿拉伯数字转中文读法(10050, True)
'调试输出:壹万零拾伍
Function 阿拉伯数字转中文读法(阿拉伯数字, 是否大写)
Dim i, l, zh, arr1, arr2, arrW1, arrW2, temp, Numer, IgnoreCase
arr1 = Array("〇", "一", "二", "三", "四", "五", "六", "七", "八", "九")
arr2 = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")
arrW1 = Array("", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "兆")
arrW2 = Array("", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "兆")
Numer = 阿拉伯数字
IgnoreCase = 是否大写
l = Len(Numer)
If l <= 15 Then
For i = 1 To l
If IgnoreCase Then
If Mid(Numer, i, 1) = "0" And (l - i) Mod 4 = 0 Then
If Right(zh,1) = "〇" Or Right(zh,1) = "零" Then zh = Left(zh, Len(zh) - 1)
If Right(zh,1) <> "万" And Right(zh,1) <> "亿" And Right(zh,1) <> "兆" Then zh = zh & arrW2(l-i)
End If
If Mid(Numer, i, 1) = "0" And Right(zh, 1) <> "零" Then
zh = zh & arr2(Mid(Numer, i, 1))
ElseIf Mid(Numer, i, 1) <> "0" Then
zh = zh & arr2(Mid(Numer, i, 1)) & arrW2(l-i)
End If
Else
If Mid(Numer, i, 1) = "0" And (l - i) Mod 4 = 0 Then
If Right(zh,1) = "〇" Or Right(zh,1) = "零" Then zh = Left(zh, Len(zh) - 1)
If Right(zh,1) <> "万" And Right(zh,1) <> "亿" And Right(zh,1) <> "兆" Then zh = zh & arrW2(l-i)
End If
If Mid(Numer, i, 1) = "0" And Right(zh, 1) <> "〇" Then
zh = zh & arr1(Mid(Numer, i, 1))
ElseIf Mid(Numer, i, 1) <> "0" Then
zh = zh & arr1(Mid(Numer, i, 1)) & arrW1(l - i)
ElseIf (l-i) Mod 4 = 0 Then
zh = zh & arrW1(l-i)
End If
End If
temp = Mid(Numer, i, 1)
Next
If Right(zh,1) = "〇" Or Right(zh,1) = "零" Then
zh = Left(zh, Len(zh) - 1)
End If
阿拉伯数字转中文读法 = zh
Else
TracePrint "溢出!"
End If
End Function
上一篇:为什么这个题要选C共有5种?
下一篇:VC++出错