将人民币的数字表示转化成大写表示(VB.NET版) (原chenyu001C#版)

原创 2004年09月15日 01:12:00

'将人民币的数字表示转化成大写表示(VB.NET版)  <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

'本代码参考chenyu001

'将人民币的数字表示转化成大写表示(C#版) 

'http://dev.csdn.net/article/28/28977.shtm

'改的不多,但愿这些改动没让原作者发怒

Public Class ChineseNum

    '输入字串

    Private _InputString As String

    '输出字串,如果无效则输出错误信息

    Private _OutString As String

    '判断输出字串是否有效

    Private _Valiad As Boolean

 

    Public WriteOnly Property InputString() As String

        Set(ByVal Value As String)

            _InputString = Value

            ConvertToChineseNum()

        End Set

    End Property

    Public ReadOnly Property Valiad() As Boolean

        Get

            Return _Valiad

        End Get

    End Property

    Public ReadOnly Property OutString() As String

        Get

            Return _OutString

        End Get

    End Property

    Private Sub ConvertToChineseNum()

        Dim numList As String = "零壹贰叁肆伍陆柒捌玖"

        Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"

        Dim number As Double = 0

        Dim tempOutString As String

        Try

            number = Double.Parse(Me._InputString)

        Catch ex As SystemException

            Me._OutString = "传入参数非数字!"

            Me._Valiad = False

            Return

        End Try

        If number > 9999999999999.99 Then

            Me._Valiad = False

            Me._OutString = "超出范围的人民币值"

            Return

        End If

        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 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

                    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

        Me._OutString = tempOutString

        Me._Valiad = True

    End Sub

End Class

 

    '则试方法

    Dim m As New ChineseNum

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        m.InputString = Me.TextBox1.Text

        If m.Valiad Then

            Me.TextBox2.Text = m.OutString

            Me.TextBox3.Text = String.Empty

        Else

            Me.TextBox2.Text = String.Empty

            Me.TextBox3.Text = m.OutString

        End If

    End Sub

将人民币的数字表示转化成大写表示(C#版)

  将人民币的数字表示转化成大写表示(C#版)     chenyu001 [收藏] 关键字   .net 出处                            将人...
  • rickjelly2004
  • rickjelly2004
  • 2004年07月01日 09:57
  • 699

将人民币的数字表示转化成大写表示(C#版)

                         将人民币的数字表示转化成大写表示(C#版)     实在没有什么好讲的,就是一个方法,大家拿去用吧using System;namespace Tes...
  • chenyu001
  • chenyu001
  • 2004年06月11日 10:22
  • 1053

将人民币的数字转化成大写表示

  function Money(thenumber)  dim Money,i,String1,String2,length,checkp定义变量  dim one(),onestr()定义数组  ...
  • xiangyyy
  • xiangyyy
  • 2007年02月06日 16:41
  • 679

将人民币的数字表示转化成大写表示

 将人民币的数字表示转化成大写表示(VB.NET版) 本代码参考chenyu001 将人民币的数字表示转化成大写表示(C#版) http://dev.csdn.net/article/28/28977...
  • jujuchen
  • jujuchen
  • 2007年06月05日 13:21
  • 423

VB.NET中数字转化为大写

Public Class chinesenum    输入字串    Private _InputString As String    输出字串,如果无效则输出错误信息    Private _Ou...
  • yangshuai126
  • yangshuai126
  • 2006年06月02日 15:40
  • 646

将人民币的数字表示转化成大写表示(C#版) (转)

实在没有什么好讲的,就是一个方法,大家拿去用吧using System;namespace Test.Com{ ///  /// 功能:字符串处理函数集 ///  public class DealS...
  • 9sun888
  • 9sun888
  • 2004年12月25日 10:22
  • 1347

用SQL SERVER函数将人民币数字转换成大写形式

 SQL SERVER函数将人民币数字转换成大写形式 闲着也是闲着,欢迎大家多提宝贵意见--阿拉伯数字转中文大写数字Create   function NToCC(@n int)returns var...
  • szliszt
  • szliszt
  • 2008年02月22日 01:21
  • 1061

java实现人民币数字和大写转换

原文地址:http://liuyanzhao.com/2512.html 直接上代码了,下面代码经测试完美。能解决数字中加0的特例 import java.math.BigDecimal; ...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2017年03月19日 22:59
  • 1078

将人民币的数字转化成大写表示 [asp]

 call Money(1605893.21)function Money(thenumber)dim Money,i,String1,String2,length,checkp定义变量dim one...
  • abandonship
  • abandonship
  • 2004年12月14日 14:18
  • 2036

JS把数字金额转换成中文大写数字的函数

//把数字金额转换成中文大写数字的函数 function num2rmb ($num){ $c1="零壹贰叁肆伍陆柒捌玖"; $c2="分角元拾佰仟万拾佰仟亿"; ...
  • fyq891014
  • fyq891014
  • 2014年12月18日 17:56
  • 2550
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将人民币的数字表示转化成大写表示(VB.NET版) (原chenyu001C#版)
举报原因:
原因补充:

(最多只允许输入30个字)