转 大写金 额 Public Class rmb Public Function ConvertSum(ByVal str As String) As String If Not IsPositveDecimal(str) Then Return "输入的不是正数字!" If (Double.Parse(str) > 999999999999.99) Then Return "数字太大,无法换算,请输入一万亿元以下的金额" Dim ch() As Char = New Char(1) {} ch(0) = "."c '小数点 Dim splitstr() As String = Nothing '定义按小数点分割后的字符串数组 splitstr = str.Split(ch(0)) '按小数点分割字符串 If (splitstr.Length = 1) Then '只有整数部分 Return ConvertData(str) + "圆整" Else '有小数部分 Dim rstr As String rstr = ConvertData(splitstr(0)) + "圆" '转换整数部分 rstr += ConvertXiaoShu(splitstr(1)) '转换小数部分 Return rstr End If End Function ' 判断是否是正数字字符串 '判断字符串 ' 如果是数字,返回true,否则返回false Public Function IsPositveDecimal(ByVal str As String) As Boolean Dim d As Decimal Try d = Decimal.Parse(Str) Catch Return False End Try If (d > 0) Then Return True Else Return False End If End Function '转换数字(整数) ' 需要转换的整数数字字符串 ' 转换成中文大写后的字符串 Public Function ConvertData(ByVal str As String) As String Dim tmpstr As String = "" Dim rstr As String = "" Dim strlen As Integer = str.Length If strlen <= 4 Then '数字长度小于四位 rstr = ConvertDigit(str) Else If strlen <= 8 Then '数字长度大于四位,小于八位 tmpstr = str.Substring(strlen - 4, 4) '先截取最后四位数字 rstr = ConvertDigit(tmpstr) '转换最后四位数字 tmpstr = str.Substring(0, strlen - 4) '截取其余数字 '将两次转换的数字加上萬后相连接 rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr) rstr = rstr.Replace("零萬", "萬") rstr = rstr.Replace("零零", "零") Else If (strlen <= 12) Then '数字长度大于八位,小于十二位 tmpstr = str.Substring(strlen - 4, 4) '先截取最后四位数字 rstr = ConvertDigit(tmpstr) '转换最后四位数字 tmpstr = str.Substring(strlen - 8, 4) '再截取四位数字 rstr = String.Concat(ConvertDigit(tmpstr) + "萬", rstr) tmpstr = str.Substring(0, strlen - 8) rstr = String.Concat(ConvertDigit(tmpstr) + "億", rstr) rstr = rstr.Replace("零億", "億") rstr = rstr.Replace("零萬", "零") rstr = rstr.Replace("零零", "零") rstr = rstr.Replace("零零", "零") End If End If End If strlen = rstr.Length If strlen >= 2 Then Select Case rstr.Substring(strlen - 2, 2) Case "佰零" rstr = rstr.Substring(0, strlen - 2) + "佰" Case "仟零" rstr = rstr.Substring(0, strlen - 2) + "仟" Case ("萬零") rstr = rstr.Substring(0, strlen - 2) + "萬" Case "億零" rstr = rstr.Substring(0, strlen - 2) + "億" End Select End If Return rstr End Function '转换数字(小数部分) '需要转换的小数部分数字字符串 '转换成中文大写后的字符串 Public Function ConvertXiaoShu(ByVal str As String) As String Dim strlen As Integer = str.Length Dim rstr As String If strlen = 1 Then rstr = ConvertChinese(str) + "角" Return rstr Else Dim tmpstr As String = str.Substring(0, 1) rstr = ConvertChinese(tmpstr) + "角" tmpstr = str.Substring(1, 1) rstr += ConvertChinese(tmpstr) + "分" rstr = rstr.Replace("零分", "") rstr = rstr.Replace("零角", "") Return rstr End If End Function '转换数字 '转换的字符串(四位以内) Public Function ConvertDigit(ByVal str As String) As String Dim strlen As Integer = str.Length Dim rstr As String = "" Select Case strlen Case 1 rstr = ConvertChinese(str) Case 2 rstr = Convert2Digit(str) Case 3 rstr = Convert3Digit(str) Case 4 rstr = Convert4Digit(str) End Select rstr = rstr.Replace("拾零", "拾") strlen = rstr.Length Return rstr End Function '转换四位数字 Public Function Convert4Digit(ByVal str As String) As String Dim str1 As String = str.Substring(0, 1) Dim str2 As String = str.Substring(1, 1) Dim str3 As String = str.Substring(2, 1) Dim str4 As String = str.Substring(3, 1) Dim rstring As String = "" rstring += ConvertChinese(str1) + "仟" rstring += ConvertChinese(str2) + "佰" rstring += ConvertChinese(str3) + "拾" rstring += ConvertChinese(str4) rstring = rstring.Replace("零仟", "零") rstring = rstring.Replace("零佰", "零") rstring = rstring.Replace("零拾", "零") rstring = rstring.Replace("零零", "零") rstring = rstring.Replace("零零", "零") rstring = rstring.Replace("零零", "零") Return rstring End Function ' 转换三位数字 Public Function Convert3Digit(ByVal str As String) As String Dim str1 As String = str.Substring(0, 1) Dim str2 As String = str.Substring(1, 1) Dim str3 As String = str.Substring(2, 1) Dim rstring As String = "" rstring += ConvertChinese(str1) + "佰" rstring += ConvertChinese(str2) + "拾" rstring += ConvertChinese(str3) rstring = rstring.Replace("零佰", "零") rstring = rstring.Replace("零拾", "零") rstring = rstring.Replace("零零", "零") rstring = rstring.Replace("零零", "零") Return rstring End Function '转换二位数字 Public Function Convert2Digit(ByVal str As String) As String Dim str1 As String = str.Substring(0, 1) Dim str2 As String = str.Substring(1, 1) Dim rstring As String = "" rstring += ConvertChinese(str1) + "拾" rstring += ConvertChinese(str2) rstring = rstring.Replace("零拾", "零") rstring = rstring.Replace("零零", "零") Return rstring End Function '将一位数字转换成中文大写数字 Public Function ConvertChinese(ByVal str As String) As String '"零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分" Dim ccstr As String = "" Select Case str Case "0" ccstr = "零" Case "1" ccstr = "壹" Case "2" ccstr = "贰" Case "3" ccstr = "叁" Case "4" ccstr = "肆" Case "5" ccstr = "伍" Case "6" ccstr = "陆" Case "7" ccstr = "柒" Case "8" ccstr = "捌" Case "9" ccstr = "玖" End Select Return (ccstr) End Function End Class