VB.NET 人民币大小写转换代码

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

此代码主要解决人民币大写显示负值

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

标签: 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Nodejs获取网络数据并生成Excel表格

下一篇:C#实现字符串DES加密和解密方法