将人民币的数字表示转化成大写表示
2007-06-05 13:21
549 查看
[align=left]'将人民币的数字表示转化成大写表示(VB.NET版) [/align]
[align=left]'本代码参考chenyu001 [/align]
[align=left]'将人民币的数字表示转化成大写表示(C#版) [/align]
[align=left]'http://dev.csdn.net/article/28/28977.shtm[/align]
[align=left]'改的不多,但愿这些改动没让原作者发怒[/align]
[align=left]Public Class ChineseNum[/align]
[align=left] '输入字串[/align]
[align=left] Private _InputString As String[/align]
[align=left] '输出字串,如果无效则输出错误信息[/align]
[align=left] Private _OutString As String[/align]
[align=left] '判断输出字串是否有效[/align]
[align=left] Private _Valiad As Boolean[/align]
[align=left] [/align]
[align=left] Public WriteOnly Property InputString() As String[/align]
[align=left] Set(ByVal Value As String)[/align]
[align=left] _InputString = Value[/align]
[align=left] ConvertToChineseNum()[/align]
[align=left] End Set[/align]
[align=left] End Property[/align]
[align=left] Public ReadOnly Property Valiad() As Boolean[/align]
[align=left] Get[/align]
[align=left] Return _Valiad[/align]
[align=left] End Get[/align]
[align=left] End Property[/align]
[align=left] Public ReadOnly Property OutString() As String[/align]
[align=left] Get[/align]
[align=left] Return _OutString[/align]
[align=left] End Get[/align]
[align=left] End Property[/align]
[align=left] Private Sub ConvertToChineseNum()[/align]
[align=left] Dim numList As String = "零壹贰叁肆伍陆柒捌玖"[/align]
[align=left] Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"[/align]
[align=left] Dim number As Double = 0[/align]
[align=left] Dim tempOutString As String[/align]
[align=left] Try[/align]
[align=left] number = Double.Parse(Me._InputString)[/align]
[align=left] Catch ex As SystemException[/align]
[align=left] Me._OutString = "传入参数非数字!"[/align]
[align=left] Me._Valiad = False[/align]
[align=left] Return[/align]
[align=left] End Try[/align]
[align=left] If number > 9999999999999.99 Then[/align]
[align=left] Me._Valiad = False[/align]
[align=left] Me._OutString = "超出范围的人民币值"[/align]
[align=left] Return[/align]
[align=left] End If[/align]
[align=left] Dim tempNumberString As String = Convert.ToInt64(number * 100).ToString()[/align]
[align=left] Dim tempNmberLength As Integer = tempNumberString.Length[/align]
[align=left] Dim i As Integer = 0[/align]
[align=left] While i < tempNmberLength[/align]
[align=left] Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))[/align]
[align=left] Dim oneNumberChar As String = numList.Substring(oneNumber, 1)[/align]
[align=left] Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)[/align]
[align=left] If Not (oneNumberChar = "零") Then[/align]
[align=left] tempOutString += oneNumberChar + oneNumberUnit[/align]
[align=left] Else[/align]
[align=left] If oneNumberUnit = "亿" OrElse oneNumberUnit = "万" OrElse oneNumberUnit = "元" OrElse oneNumberUnit = "零" Then[/align]
[align=left] While tempOutString.EndsWith("零")[/align]
[align=left] tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)[/align]
[align=left] End While[/align]
[align=left] End If[/align]
[align=left] If oneNumberUnit = "亿" OrElse (oneNumberUnit = "万" AndAlso Not tempOutString.EndsWith("亿")) OrElse oneNumberUnit = "元" Then[/align]
[align=left] tempOutString += oneNumberUnit[/align]
[align=left] Else[/align]
[align=left] Dim tempEnd As Boolean = tempOutString.EndsWith("亿")[/align]
[align=left] Dim zeroEnd As Boolean = tempOutString.EndsWith("零")[/align]
[align=left] If tempOutString.Length > 1 Then[/align]
[align=left] Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")[/align]
[align=left] If Not zeroEnd AndAlso (zeroStart OrElse Not tempEnd) Then[/align]
[align=left] tempOutString += oneNumberChar[/align]
[align=left] End If[/align]
[align=left] Else[/align]
[align=left] If Not zeroEnd AndAlso Not tempEnd Then[/align]
[align=left] tempOutString += oneNumberChar[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] i += 1[/align]
[align=left] End While[/align]
[align=left] While tempOutString.EndsWith("零")[/align]
[align=left] tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)[/align]
[align=left] End While[/align]
[align=left] While tempOutString.EndsWith("元")[/align]
[align=left] tempOutString = tempOutString + "整"[/align]
[align=left] End While[/align]
[align=left] Me._OutString = tempOutString[/align]
[align=left] Me._Valiad = True[/align]
[align=left] End Sub[/align]
End Class
[align=left] '则试方法[/align]
[align=left] Dim m As New ChineseNum[/align]
[align=left] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click[/align]
[align=left] m.InputString = Me.TextBox1.Text[/align]
[align=left] If m.Valiad Then[/align]
[align=left] Me.TextBox2.Text = m.OutString[/align]
[align=left] Me.TextBox3.Text = String.Empty[/align]
[align=left] Else[/align]
[align=left] Me.TextBox2.Text = String.Empty[/align]
[align=left] Me.TextBox3.Text = m.OutString[/align]
[align=left] End If[/align]
End Sub
[align=left]'本代码参考chenyu001 [/align]
[align=left]'将人民币的数字表示转化成大写表示(C#版) [/align]
[align=left]'http://dev.csdn.net/article/28/28977.shtm[/align]
[align=left]'改的不多,但愿这些改动没让原作者发怒[/align]
[align=left]Public Class ChineseNum[/align]
[align=left] '输入字串[/align]
[align=left] Private _InputString As String[/align]
[align=left] '输出字串,如果无效则输出错误信息[/align]
[align=left] Private _OutString As String[/align]
[align=left] '判断输出字串是否有效[/align]
[align=left] Private _Valiad As Boolean[/align]
[align=left] [/align]
[align=left] Public WriteOnly Property InputString() As String[/align]
[align=left] Set(ByVal Value As String)[/align]
[align=left] _InputString = Value[/align]
[align=left] ConvertToChineseNum()[/align]
[align=left] End Set[/align]
[align=left] End Property[/align]
[align=left] Public ReadOnly Property Valiad() As Boolean[/align]
[align=left] Get[/align]
[align=left] Return _Valiad[/align]
[align=left] End Get[/align]
[align=left] End Property[/align]
[align=left] Public ReadOnly Property OutString() As String[/align]
[align=left] Get[/align]
[align=left] Return _OutString[/align]
[align=left] End Get[/align]
[align=left] End Property[/align]
[align=left] Private Sub ConvertToChineseNum()[/align]
[align=left] Dim numList As String = "零壹贰叁肆伍陆柒捌玖"[/align]
[align=left] Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"[/align]
[align=left] Dim number As Double = 0[/align]
[align=left] Dim tempOutString As String[/align]
[align=left] Try[/align]
[align=left] number = Double.Parse(Me._InputString)[/align]
[align=left] Catch ex As SystemException[/align]
[align=left] Me._OutString = "传入参数非数字!"[/align]
[align=left] Me._Valiad = False[/align]
[align=left] Return[/align]
[align=left] End Try[/align]
[align=left] If number > 9999999999999.99 Then[/align]
[align=left] Me._Valiad = False[/align]
[align=left] Me._OutString = "超出范围的人民币值"[/align]
[align=left] Return[/align]
[align=left] End If[/align]
[align=left] Dim tempNumberString As String = Convert.ToInt64(number * 100).ToString()[/align]
[align=left] Dim tempNmberLength As Integer = tempNumberString.Length[/align]
[align=left] Dim i As Integer = 0[/align]
[align=left] While i < tempNmberLength[/align]
[align=left] Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))[/align]
[align=left] Dim oneNumberChar As String = numList.Substring(oneNumber, 1)[/align]
[align=left] Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)[/align]
[align=left] If Not (oneNumberChar = "零") Then[/align]
[align=left] tempOutString += oneNumberChar + oneNumberUnit[/align]
[align=left] Else[/align]
[align=left] If oneNumberUnit = "亿" OrElse oneNumberUnit = "万" OrElse oneNumberUnit = "元" OrElse oneNumberUnit = "零" Then[/align]
[align=left] While tempOutString.EndsWith("零")[/align]
[align=left] tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)[/align]
[align=left] End While[/align]
[align=left] End If[/align]
[align=left] If oneNumberUnit = "亿" OrElse (oneNumberUnit = "万" AndAlso Not tempOutString.EndsWith("亿")) OrElse oneNumberUnit = "元" Then[/align]
[align=left] tempOutString += oneNumberUnit[/align]
[align=left] Else[/align]
[align=left] Dim tempEnd As Boolean = tempOutString.EndsWith("亿")[/align]
[align=left] Dim zeroEnd As Boolean = tempOutString.EndsWith("零")[/align]
[align=left] If tempOutString.Length > 1 Then[/align]
[align=left] Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")[/align]
[align=left] If Not zeroEnd AndAlso (zeroStart OrElse Not tempEnd) Then[/align]
[align=left] tempOutString += oneNumberChar[/align]
[align=left] End If[/align]
[align=left] Else[/align]
[align=left] If Not zeroEnd AndAlso Not tempEnd Then[/align]
[align=left] tempOutString += oneNumberChar[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] End If[/align]
[align=left] i += 1[/align]
[align=left] End While[/align]
[align=left] While tempOutString.EndsWith("零")[/align]
[align=left] tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)[/align]
[align=left] End While[/align]
[align=left] While tempOutString.EndsWith("元")[/align]
[align=left] tempOutString = tempOutString + "整"[/align]
[align=left] End While[/align]
[align=left] Me._OutString = tempOutString[/align]
[align=left] Me._Valiad = True[/align]
[align=left] End Sub[/align]
End Class
[align=left] '则试方法[/align]
[align=left] Dim m As New ChineseNum[/align]
[align=left] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click[/align]
[align=left] m.InputString = Me.TextBox1.Text[/align]
[align=left] If m.Valiad Then[/align]
[align=left] Me.TextBox2.Text = m.OutString[/align]
[align=left] Me.TextBox3.Text = String.Empty[/align]
[align=left] Else[/align]
[align=left] Me.TextBox2.Text = String.Empty[/align]
[align=left] Me.TextBox3.Text = m.OutString[/align]
[align=left] End If[/align]
End Sub
相关文章推荐
- 将人民币的数字表示转化成大写表示(C#版) (转)
- 将人民币的数字表示转化成大写表示(C#版)
- 将人民币的数字表示转化成大写表示(C#版)
- 将人民币的数字转化成大写表示
- 将人民币的数字转化成大写表示 [asp]
- 将人民币的数字表示转化成大写表示(C#版)
- 将人民币的数字转化成大写表示
- 将人民币的数字表示转化成大写表示(C#版)
- 将人民币的数字表示转化成大写表示(C#版)
- 将人民币的数字表示转化成大写表示(VB.NET版) (原chenyu001C#版)
- PHP将数字金额转化为中文人民币大写
- 数字转化为人民币大写
- 将阿拉伯数字转化成大写的人民币数字
- 数字转化为人民币大写(PHP)
- C#通用类库--数字转为人民币汉字大写表示
- 将阿拉伯数字转化为人民币的大写
- 将阿拉伯数字转化成大写的人民币数字
- 金额的大写方法_把数字转化为人民币的大写汉字
- 将数字字符串人民币转化成大写字符串人民币
- 人民币金额中数字格式转化为中文的人民币大写格式的全部代码