''' <summary>
''' 将数字转换成大写人民币
''' </summary>
''' <param name="v">要转换的数字字符串</param>
''' <returns>转换后的大写人民币字符串</returns>
Public Function ConvertToChineseNum(var As String) As String
Dim numList As String = "零壹贰叁肆伍陆柒捌玖"
Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dim number As Double = 0
Dim tempOutString As String = Nothing
Try
number = Double.Parse(var)
Catch
MessageBox.Show("传入参数非数字!")
Return var
End Try
If number > 9999999999999.99 Then
MessageBox.Show("超出范围的人民币值")
End If
'将小数转化为整数字符串
If number > 0 Then
Dim tempNumberString As String = Convert.ToInt64(number * 100).ToString()
Dim tempNmberLength As Integer = tempNumberString.Length
Dim i As Integer = 0
While i < tempNmberLength
Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))
Dim oneNumberChar As String = numList.Substring(oneNumber, 1)
Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)
If oneNumberChar <> "零" Then
tempOutString += oneNumberChar & oneNumberUnit
Else
If oneNumberUnit = "亿" OrElse oneNumberUnit = "万" OrElse oneNumberUnit = "元" OrElse oneNumberUnit = "零" Then
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
End If
If oneNumberUnit = "亿" OrElse (oneNumberUnit = "万" AndAlso Not tempOutString.EndsWith("亿")) OrElse oneNumberUnit = "元" Then
tempOutString += oneNumberUnit
Else
Dim tempEnd As Boolean = tempOutString.EndsWith("亿")
Dim zeroEnd As Boolean = tempOutString.EndsWith("零")
If tempOutString.Length > 1 Then
Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")
If Not zeroEnd AndAlso (zeroStart OrElse Not tempEnd) Then
tempOutString += oneNumberChar
End If
Else
If Not zeroEnd AndAlso Not tempEnd Then
tempOutString += oneNumberChar
End If
End If
End If
End If
i += 1
End While
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
While tempOutString.EndsWith("元")
tempOutString = tempOutString & "整"
End While
Else
tempOutString = "零"
End If
Return tempOutString
End Function