将人民币的数字表示转化成大写表示(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

时间: 2024-08-03 22:10:16

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

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

大写|人民币 将人民币的数字表示转化成大写表示(C#版) 实在没有什么好讲的,就是一个方法,大家拿去用吧 using System; namespace Test.Com{ /// <summary> /// 功能:字符串处理函数集 /// </summary> public class DealString { #region 私有成员 /// <summary> /// 输入字符串 /// </summary> private string inputS

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

大写|人民币 <%call Money(22222222222)function Money(thenumber)dim Money,i,String1,String2,length,checkp'定义变量dim one(),onestr()'定义数组 String1 = "零壹贰叁肆伍陆柒捌玖"String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分厘毫" checkp=instr(thenumber,".")'判断是否含有小数位 if ch

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

大写|人民币 <% callMoney(22222222222) functionMoney(thenumber) dimMoney,i,String1,String2,length,checkp'定义变量 dimone(),onestr()'定义数组 String1="零壹贰叁肆伍陆柒捌玖" String2="万仟佰拾亿仟佰拾万仟佰拾元角分厘毫"   checkp=instr(thenumber,".")'判断是否含有小数位  ifche

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

  SQL SERVER函数将人民币数字转换成大写形式 CREATE FUNCTION [dbo].[f_num_chn] (@num numeric(14,5)) RETURNS varchar(100) WITH ENCRYPTION AS BEGIN DECLARE @n_data VARCHAR(20),@c_data VARCHAR(100),@n_str VARCHAR(10),@i int SET @n_data=RIGHT(SPACE(14)+CAST(CAST(ABS(@num

将数字转换成大写的人民币表达式的js函数

  将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&q

将数字转换成大写的人民币表达式的js函数_javascript技巧

将数字转换成大写的人民币,方法有很多,本例介绍的是使用js来完成的,看看下面的实现代码 function changeNumMoneyToChinese(money) { var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖&quo

将金额小写转化成汉字大写的实现过程

大写|过程|汉字|金额|小写  自己写的一个比较丑的程序,但做报表时候有用  /********************************************************************  时间:2003.7.31  作者:千里猪  功能:将货币数字(阿拉伯数字)(小写)转化成中文(大写)   参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")  说明:1.目前本转换仅支持到 拾亿(元) 位,金额单位为元

PHP人民币金额数字转中文大写的函数代码_php技巧

在网上看到一个非常有趣的PHP人民币金额数字转中文大写的函数,其实质就是数字转换成中文大写,测试了一下,非常有趣,随便输个数字,就可以将其大写打印出来,新手朋友们试一下吧,举一反三,还可以写好多有趣的PHP转换函数. 复制代码 代码如下: <?  function cny($ns) {     static $cnums=array("零","壹","贰","叁","肆","伍",

Word2007如何快速把数字转化为大写数?

  Word2007如何快速把数字转化为大写数?           1.打开word2007应用图标按钮,进入word2007主界面中 2.在word2007编辑界面中,输入数字比如1029001,选中数字之后,点击工具栏上插入按钮 3.点击插入界面中的编号按钮图标,应用按钮在最右侧 4.word2007就会弹出一个编号的界面选择框,提供了多种多样的编号形式,让大家选择 5.滑动滚轮,我们找到符合我们转化需求的大写汉字规则的选项,然后点击确定按钮 6.我们就能完成数字转化为大写汉字的要求,得到