[摘 要] 本文在分析用阿拉伯數字表示人民幣幣值數量和用漢字表示人民幣幣值數量的數學基本原理基礎上,利用VB語言,提出一種簡便的人民幣幣值數字轉換算法模型,設計并成功應用在財會軟件上。
[關鍵詞] VB;阿拉伯數字/漢字轉換;幣值數量表示方法
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2010 . 12. 003
[中圖分類號]F232 [文獻標識碼]A [文章編號]1673 - 0194(2010)12 - 0009- 02
在我國財會實際工作中,人民幣幣值的數量一般用阿拉伯數字和漢字兩種文字表示。阿拉伯數字是一種十進制數字,用有位值計數方法表示數量。它的數值是位值與數碼的統一,10個數碼隨位置的改變而改變其表示的數值,進位基數是“10”。人民幣幣值也使用十進制表示法,其進位基數也是“10”。因此,用阿拉伯數字表示人民幣的幣值,就可以省去幣值基準單位以外的位值字符。如選取“元”為幣值基準單位,無論多大或多小的幣值數量都是一串阿拉伯數字后面加上一個“元”字,就可以準確無誤地表示其幣值了。用10個漢字表示人民幣的幣值數量,是一種無位值表示法。用漢字表示人民幣的幣值,漢字的位置與幣值無關。因此,用10個漢字表示人民幣的幣值,除幣值基準單位以外的每個漢字后面都要跟著一個位值文字,才能明確無誤地表示出該漢字所表示的幣值數量。如“壹”字后面必須跟著“仟、百、拾”等漢字才能表示是“1 000元”、“100元”還是“10元”。據此,可以用VB編程語言設計一種更為簡便的阿拉伯數字/漢字轉換算法模型[1],用在人民幣幣值表示換算頻繁的會計報表中,可以大大提高工作效率。
1 結構流程
阿拉伯數字/漢字轉換在人民幣幣值表示中的算法結構流程如圖1所示(幣值基準單位為“元”,最小單位為“分”)。
2 設計思路
因為在實際應用中,用阿拉伯數字串表示人民幣幣值數量,基準單位一般為“元”,最小的常用單位為“分”,所以必須使用截位函數Round()將帶小數的數字串轉換為帶兩位小數的數字串。設多位小數的字符串為W,Round(W)即得帶兩位小數的數字串X。
因為漢字表示的人民幣幣值數量中,無小數點的表示,所以要將帶兩位小數的數字串乘以100,變成整數數字串U,即U=X*100。這樣做還可以處理一個特殊情況。如果原數字字符串W是整數,W*100能將整數的表示方法與帶小數的表示方法統一起來,方便機器對數據的處理。
阿拉伯數字/漢字轉換,在VB中用下列語句:
Selse Case (X)
Case 1
MyString=“壹”
Case 2
MyString=“貳”
Case 0
MyString=“零”
End Selse
用上述語句每轉換一位阿拉伯數字,隨即鑲嵌相應位的人民幣幣值漢字字符。本文將人民幣幣值字符串按位值順序設為:
TheirString=“萬仟佰拾億仟佰拾萬仟佰拾元角分”
采用循環語句,重復上述兩步操作,直至把阿拉伯數字串轉換完畢為止,即得到用漢字表示的人民幣幣值數量字符串。
本文把最大的轉換數量設為:玖萬玖仟玖佰玖拾玖億玖仟玖佰玖拾玖萬玖仟玖佰玖拾玖元玖角玖分。從原理來說,只要硬件允許,最大轉換數量還可以提高,但在普通的財務工作實際中,這樣的轉換數量值也足夠了。
3 完整代碼
完整代碼大致如下:
Dim X As Variant, Y As Integer, Z As Integer, _
MyString As String, YouString As String, _
TheirString As String
X = Round(Text1.Text, 2)
X = X* 100
TheirString = “萬仟佰拾億仟佰拾萬仟佰拾元角分”
Y = Len(X)
For Z = 1 To Y ' 建立位數次循環。
Select Case Mid(X, Z, 1) '從X中每次取一位數進行遍歷轉換。
Case 1
YouString = “壹”
Case 2
YouString = “貳”
Case 3
YouString = “叁”
Case 4
YouString = “肆”
Case 5
YouString = “伍”
Case 6
YouString = “陸”
Case 7
YouString = “柒”
Case 8
YouString = “捌”
Case 9
YouString = “玖”
Case 0
YouString = “零”
End Select
MyString = MyString YouString ' 將數字添加到字符串中。
MyString = MyString Mid(Right(TheirString, Y), Z, 1) ' 鑲嵌人民幣幣值漢字字符。
Next Z
Text2.Text = MyString
4算法界面的實現
打開VB,在主窗口建立標準窗體。在主窗體上放置兩個文本框Text 1和Text 2,一個命令按鈕Command1,分別設置其屬性。將完整代碼放置在命令按鈕的單擊事件Command_Click()過程中,程序設計完畢。程序的界面外觀如圖2所示。
運行程序。在程序界面窗口上邊的文本框中,輸入阿拉伯數字表示的人民幣幣值數量字符串,單擊命令按鈕,下邊的文本框中就出現用漢字表示的相同幣值數量的字符串。將此程序用于某財務軟件的打印頁預覽如圖3所示。
5 結束語
本文提出一種簡便的阿拉伯數字/漢字轉換算法模型,用在人民幣幣值數量的不同文字表示轉換中,代碼簡單,可靠性強。在財務軟件中使用,是成功的。
主要參考文獻
[1] 胡海剛,舒偉權. 基于VB的數字/中文轉換算法模型[J].電腦開發與應用, 2002(10).
[2]王偉光. Excel環境下金額數字大寫轉換方法探討[J]. 中國管理信息化,2009(6).
[3][美]斯蒂芬·喬丹(Steven Jordan).Visual Basic 6編程寶典[M]. 牛力,譯. 北京:電子工業出版社, 2005.