Vb教程 Vb.net教程 Vfp教程 C/C++教程 Vc/Vc++教程 Delphi教程 Java教程 Powerbuilder
  杀毒频道 | 短信频道 | 网络电视 | 论文中心 | 学上网 | 学软件 | 网页特效 | 电脑基础 | 论坛  
  NCRE | 软考 | CET | 职称英语 | 司法考试 | 报关员 | 公务员 | CATTI | CPA考试  
  Html教程 | Css教程 | Xml教程 | Asp教程 | Asp.net | Php教程 | Jsp教程 | Linux教程 | QQ技巧  
Photoshop Illustrator ImageReady Maya教程 3D Max教程 Lightscape Coredraw教程 Authorware Autocad教程 Freehand教程
Access教程 Mysql教程 Sql server Oracle教程 Word教程 Excel教程 Powerpoint Frontpage Asp.net源码 Php源代码
Flash教程 Fireworks Dreamweaver C#教程 outlook教程 系统安装 vbscript教程 Javascript Jsp源代码 Asp源代码
您的位置:首页 >> Vb.net教程 >> 正文

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

文章来源:互联网

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

'本代码参考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

[返回]

编程语言 web开发 数据库 网络技术 操作系统 服务器 网页设计 图形设计 办公软件 常用软件 学电脑

Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved.
关于本站 | 版权声明 | 联系我们 | 友情链接 |
编程入门网 版权所有