VB.NET 人民幣大小寫轉換代碼
此代碼主要解決人民幣大寫顯示負值
Sub ChangeSize_Selected(ByVal sender As Object, ByVal e As EventArgs) panel1.Width = papersize.SelectedValue End Sub Function ConvertToRMB(ByVal inputString As String) As String Dim numList As String = “零壹貳叁肆伍陸柒捌玖” Dim rmbList As String = “分角元拾佰仟萬拾佰仟億拾佰仟萬” Dim number As Double = 0 Dim tempOutString As String = “” Try number = Double.Parse(inputString) Catch ex As SystemException ClientScript.RegisterStartupScript(Me.GetType(), “”, GetAlertInfo(“傳入參數非數字!”)) ‘ MessageBox.Show(“”) End Try If number > 9999999999999.99 Then Return “超出范圍的人民幣值” End If Dim tempNumberString As String = Convert.ToInt64( number * 100).ToString() Dim tempNmberLength As Integer = tempNumberString.Length Dim i As Integer = 0 If tempNumberString.StartsWith(“-”) Then tempOutString = “負” i = i + 1 end if 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 Not (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 If Not tempOutString Is Nothing Then 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 End If i += 1 End While If Not tempOutString Is Nothing Then While tempOutString.EndsWith(“零”) tempOutString = tempOutString.Substring(0, tempOutString.Length – 1) End While While tempOutString.EndsWith(“元”) tempOutString = tempOutString + “整” End While Return tempOutString Else Return “” End If End Function
本文由用戶 wufflina 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!