2010年6月中国管理信息化Jun.,2010 China Management Infonnationization 第13卷第12期, 基于VB的人民币币值数字转换的简便算法封方初(广西教育技术装备中心,南宁530012)[摘要]本文在分析用阿拉伯数字表示人民币币值数堂和用汉字表示人民币币值数量的数学基本原理基础上,利用VB语言,提出一种简俊的人氏币币值救字转换算法模型,设计并成功应用在财会软件上。[提键词]V曰:阿拉伯数字/汉字转换;币值批量农示方法doi: 10. 3969/j. issn. 1673叶ω3[中团分~号]F232 [文献标识码]A文章编号]1673-0194(2010)12…0ω弘02在我同财会实际工作中,人民币币值的数量一般用阿2 设计思路拉伯敬字和汉字附种文字表放。附拉伯数字是一种十进制因为在实际应用中,用阿拉伯数字串表示人民币币值数字,用有位值计敬Ji陆农IJ'敏量。它的数值是位值与敬数量,基准单位一般为"元最小的常用单位为"分所以码的统一,10个数码随位贵的改变而改费其表示的数筒,必须使用截位副数Round()将带小数的数字E扭转换为进位基数是"10"。人民币币ffi也使用十进制表示法,其进带两位小数的数字串。设多位小敬的字符串为W,民ound位基数也是")0"。因此,用阿拉伯数字表示人民币的币值,(W)即得带两位小敏的数字串Xo就可以省去币值基准单位以外的位值字符。如选取"纯"为四为现字表示的人民币币值数量中,:X小数点的表用俐在准且在位,尤论多大或多小的币值数锺都娃一审问拉伯数字病而加上…个"元"字,就口J以准确无误地费水其币示,所以娱将带两位小嫩的数字串乘以l∞,变成鼓敬敬字恼了。用10个汉字表水人民币的币{在数最,是一种无位值申U,~PU=X*I∞ο这样做还可以处用…个特殊情况。如果表示法。用汉字表示人民币的币值,汉字的位置与币值无原数字字符申W:J是帮数W*I00能将黯敬的表尽方法与关。因此,用10个议字表尽人民币的币值,除币值基准单带小数的表示方法统一起来,方便机器对数据的处理。位以外的每个、汉字后剧都赞跟帮一个位值文字,才能明确阿拉伯数字f汉字转换,在VB中用下列语句:咒误地我示出该叹字所表机的币ffi数簸。如"娃"字陌丽必SelseCase (X) 须服着"忏、百、拾"等汉字才能表不是"10∞元"、"1ω元"Case 1 还是")0元"。据此,可以用VB编暗语育设计一种更为简便的阿拉伯数字/叹字转换算法模型lll,用在人民币币值表MyString="堂"示换算频繁的合计掘进中可以大大提商γ作效率。Case2 1 锚构流程MyString="威"阿拉伯敏字/叹字转换在人民币币值表示中的算法结构流根如同1所放(币债幕准单位为"元最小单位为CaseO "分")。MyString="嚓"EndSelse 用k述语句每转换一位阿拉伯数字,随即镶嵌相应位的人民币币值汉字字符。本文将人民币币值字符串按位值顺序设,为:TheirString="万忏侣拾亿忏俯拾万忏俯拾元角分"采用循环语句,重复上述两步操作,直至把阿拉伯数字串转换完毕为止,即得到用汉字表前的人民币币值数量字符串。本文把最大的转幌数盘设为:趴lf执忏趴伯矶拾矶亿回1算法结构流程阁矶忏政俯政恰矶万矶忏肮伯.队拾矶元执角矶分。从原理来[1眩稿日期]2侃)9-12-31说,只要制件允许,最大转换数最还可以提高,但在普诵的CHINA MANAGEMENT lNFORMA丁70NlZAT10N I 9 췲랽쫽뻝㈰훐䍨䩵嘰믹럢⢹ꆾ폃容摯寖寎퓚삭쫽싫뷸캻뻍뇒늮횵뇭맘컞탫〰뮹뇣䪣쪾?뷡낢릹ꆰ뷘듸떩춼寊짨탗뇘⦽⡗틲뒮풭卥䍡䵹䕮뗄쮳周닉ퟖ놾뻁쮵뗚䵡汮䍡卥ㆣ楮溣㇋햸汳?맺햪噂?榣탍쓏쓕컒늮ퟖ뗄캻믹뿉횵쇋쪾ꆣ틔컳룺ピ곓뮻삭럖솽솿탫ꮴ⤰ꎬ喣獥却짏죋탲폃뒮럻쫽쫇쇷캪킡敩컄잪ㄳ湡景릹놤볆獥楳긱쓪?꺣랽늮맜튪폯ﲴ먱벷ힱ슱춬쫽ꎬ춳믹틔ꆣ램틲췢뗘ퟅꪡ낢쏔쯣늮ꆱ캻쪹サ몺쯹겼⡘物쫶쏱짨톭뒮횻뻭来牭㎣?ퟖꆰ돌퓚牓냑뻁㛔긲폚쇷쫽헻⇱ꢽ헆쮼깎뗚샭浥慴嶱퇔쩝ィ훀닆ퟖ폃튻쫽튲쪡ힼꆣ듋뗄뇭ꆰ놡삭?욵⦡킡믹ꇊ쎴틔둕?湧폯뇒캪뮷뮻튪?〱돵뫳汏죧ퟖ쫽?쪵뗄湧瑲ퟮ냛澣椲湴楯쳓돌슷탅뻎ꎬ噂긳뛂앝믡뫍폐ꎮ쫇좥떥폃쎿쪾잪ꊡ늮쯃랱ퟖ쫽ힼ뷘ﶵ뇭튪㵘럻㶡뻤뇒ꎺ폯췪펲?긱뒮ퟖ링㈰쏦풪춼볊뇭㶡楮듳뻁웚湩쾢?쓔쳡ꎻ㤶앝ㄶ쪵몺캻ꆰ뇒룶폃?ꆢ뀱쫽뗄ꎯ떥쓊뷎쪾붫럮뒮냒쎿횵뻤뇏볾噂ﶼ럻〹穡볓ꆱ㇋펦쪾ꎯ낷냁朽쪰뮯?돶낢㦣䘲?㜳볊ퟖ횵룶ꆣ몺룃냙〰튱믡뒮쳍ⴱ캻쫽믐뗄듸埊벡캪퓊瑩볊짏ꆣ流?㊡폃랽ꆡꆰ뻁훎튻삭걪㌲ꆪ릤솽볆쫽ꆱ믹컞ퟖ뇭룶몺ꆢ풪ꎯ틖횴ꇊ죋ァ쟕뮻훘횹탭潮뗄ﺿꨳ훖늮ꎮ〱ퟷ쫽싫ꆣힼ싛튻뇭쪾몺뫳ퟖ쪰ꆱ뻝떱놨븨훰훐냣副껗뒮ﶵ쏱캻ꏕ램?췲뢴뮻ꎬ?낱쎰볲쫽楳㤴훐컄랽쯦죋틲떥뛠쪾ퟖ쏦쯹ꆱ?뇭뮻캻톶캪畮ꪻꆣ쓊킡ﶣ럻짏벴ퟮ룶듋뇒ꎮ춳잪뻁ꋀ뇣ퟖ獮⠲ꎮ램캻쏱듋듳뇭뚼뗈훐퓚搨믎짨뇒쫽輪걗낢ꆣ쫶뗃죋룖ꆰꎬ횵폃튻뮻냛솿잪궲뗄ꎯꎮ〱죋뇭훃뇒ꎬ틔믲쏱쪾튪몺뮻ꆣ뒮풪?뛠횴횵냫삭놾솽떽풪뿉믹낢웰ꎬ쪰짨뻁탐껊죋몺ㄶ〩쏱쪾뗄뇒폃췢뛠룺ퟖ쯣뿉ꇁ늢ꆱ캻깘쫽릿늮컄늽뮻ꆱ틔ힼ삭살퓚틚캪냛쏱쒣?ퟖ㜳ㄲ뇒ꆣ쫽룄횵낢뗄킡ퟅ닅램틔쿢ꎬ솿짒ツ붫닙몺ퟖ폃떥늮ꎬ噂잪ꎺ뻁횱뇒ꆪ낢솿뇤튲삭캻뗄횵튻쓜쒣듳?잶ퟮ쫽훐뒮풴?죋ퟷ계뼡噂캻랽훐냛뻁쪰뇒뮻〱〰횵삭ꆣ뛸쪹늮ꎬ뗄룶쫽뇭탍듳킡돋ꛀꯕꎮ쏱뮹뇒쿄뻈횵ꎻ㤴〹뗄늮쯼룄폃쫽ퟖ뻍몺뇒캻솿쪾뇠ꆾ쳡뇭캪컞틔뇣쯦쪰횱췲뻁뿉︵믊쯃쫽뇒ꎮⴰ뗄뇤쪮ퟖ럻솿횵ꆣ쫇?룟쪾뎣킡뮸ﶵ벴훁틔돌ꆰ뒮믺쿂췲뻁풪뇒㌰ퟖ횵㈰?솿쫽웤뷸뇭ꆣꎬ뗄컄죧ꆰ뚡훐럻폃뒮ィ쒱쿢냑죋쳡틔폯풪웷쇐잪뻁튱쫽튻쫇횵뇭훆쪾죧뚼캻돽ퟖꆰ?ퟷ뗄떥캪뗣겱?잶낢쏱룟〱ힼ퇔ꆱ쪾뛔폯냛뻁뷇틖뮻솿ꎮ냣튻쫇쪾뇭죋톡훃뇒튼킧쯣캻垡뗄뺷쿠럻삭ꎬ횵㈩좷짨ꎬ죋쫽뻤쪰냛뻁뗊쯣뇭ㄲ폃훖캻뗄쪾쏱좡튻폫횵닅ꆱ싊램캪ꍒ징붷펦뒮늮뇒떫컞볆ퟮ쏱뻝ꎺ풪뻁럖ﷁ램쪾ꎮ낢쪮횵쫽뇒ꆰ뒮믹쓜ퟖꆣ뷡潵꣓캻내퓚컳튻킡뇒뷇쪰ꆣ뾺쒣랽〰뷸폫횵ꎬ뗄풪낢캻ힼ쏷뫳럖湤ꏈ?웕쫽췓탍램?훆쫽ꎮ웤뇒ꆱ삭뗘횵컞떥좷쏦훖뒦럖솿뻁듓춨쎺ꎬ뷸횵캪뇘?뗄뇭룼캻샭ꆱ틚풭ퟖ뫗짨ꎬ쯹쪾캪ꆣ샭횱볆틔웤볲살늢뇒뻈돉쯃릦뮻펦튱폃틖퓚뗄뗊닆ﷁ믡볲뾵죭쓊볾짏뇣ꞻꆣ鈴뻔쯣귀램領ꇉ쾣곀?
会计信怠化财务丁.作实际中,这样的转换数量值也足够了。Y ouString = "矶"CaseO 3 完整代码Y ouString = ..零"完整代码大致如下:EndSelect Dim X As Va riant, Y As Integer, Z As Integer,一MyString = MyString & YouString'将数字添加到字符MyStringAsString, YouString AsString,_ 串中。TheirString As String MyString= MyString & Mid(Right(霄leirString,Y), Z, X=Round(,2) 1)'镶耐人民币币值汉字字符。X=X*l∞ NextZ TheirString= ..万忏伯拾亿仔伯拾万仔伯拾元角分" = My String Y =Len(X) ForZ= 1 To Y'建立位数次循环。4 算法界面的实现SelectCase Mid(X, Z, 1)'从X中每次取一位数进行打卅VB,在主窗口建立标准窗体。在主窗体k放置两遍历转换。个文本框Textl和Text2,一个命令按钮Commandl,分别Case 1 设置其属性。将完整代码放雷在命令按佣的单击事件Yo uString = ..查"Command_Click()过程中,程序设计完毕。程序的界面外现C臼e2如固2所水。Y ouString = ..戒"Case3 YouString= ..皇"C剖e4YouString= ..肆"C臼e5Yo uString = ..伍"Case6 Yo uString = ..陆"图2程序界面Case7 运行程序。在程序界面窗口上边的文本框中,输入阿Yo uString = ..荣"拉伯数字表示的人民币币值数量字符串,单击命令按钮,Case8 下边的文本框中就州现用汉字表示的相同币伯数量的字符Yo uString = ..棚"串。将此程序用于某财务软件的打印页预览如图3所水。Case9 合同编号X200210佣3第一联:供货存查货物名称规格型号单位单价报量金额电热乎攫式压力赛汽灾菌量去YXQ-SG41 -280-A 台8出.∞1850∞ 生化培葬箱LRH-250A 台6, 6, 洁净工作台sw-q-1BU 台5, 5, -420-S 电热值温培养箱台3, 3, 电炉1∞OW 台 费饱水发生器20L不锈钢台1, 1, 电子灾菌器-250 3, 3, f1 日军军主目合理c:*:写): 熏万壶忏制侣幸灾描雯耳零角零分¥21,890∞ 图3打印页面预览5结束语发与成用,2∞2(10).[2]王伟光.Excel环境F金额数字大写转换方法探讨(J].中国管理信本文提出一种简便的阿拉伯数字!&字转换算法模息化,2侃19(6).型,用在人民币币伯数量的不同文字表示转换中,代码简[3](美]斯蒂芬·乔丹(StevenJordan).Visual B皿ic6编程宝典[M].牛单,可靠性强。在财务软件中使用,是成功的。力,译.北京:电子工业刷版社,2∞5.主要参考文献[1]胡海嗣.舒伟仅.基于VB的数字/中文转换算法模型[J].电脑开10/ CHINA MANAGEMENT JNFORMA 170NlZA Tl0N 췲랽쫽뻝믡닆?췪䑩䵹周䅳却墣堽夽䙯呯㞽卥뇩䍡奯䕮뒮ㄩ乥㓋듲룶沺짨䍯죧춼퓋삭쿂믵맦떥럳뷰뗧奘첨㠵짺䱒㚣뷠獗㖣䡈㎣〰㘰헴㈰沣没놾ꎤ뷡탍훷嬱랢ꆾ쾢嬳䩯솦㘰卥䵹呥奯㊡ィ䢣갸긹갹갴〢갲浘却敩物壈牚?獥硴㊳儭ꎮ꼲갶㎴튪嶺폫㊡뮯嵛牤멒䱥ꣁ샺畓ꯊ훐㟏뾪컄쵔훃浭춼탐뇟ꆣꆪ冣㈱ꎬ컱汥늮컯룱캻볛쒫뛮죈뮯뺻슯쇳䲲ퟓ놴헻却硴쫸볆기깯긲〰㠰〷畓ꏒ컄䅳物牓湧괱㴱?㎡쳐升䈱닎諸펦뿍ꆣ쏀慮틫〰듺潵渨ꋎ瑲ꆣ噂놾數웤慮㋋돌뗄붫熡깄ꎬ폃뿉物㊣?㔰ꎮⶶ牓捴쫽쏻탍쫖엠릤횵쮮믐쏰뷰뮸듺噡湧瑲〰?ꢽ㑬䦡ꎮꇒ폯뾼ꎸ폃㈰巋⦣탅〰싫湤堩믊뮻楮湧훌뛈깔ꎬ뿲?쫴撡流탲틥듋ꑉ夭㠹퓚뾿ꇗ物䅳楮瑲䍡ퟖ돆뫅쳡ⴲ퇸ퟷ컂ꐴ랢〰뻺뺱돃컄햣ꎮ낹〹릵깖놱싫㵍數듳⡔ﶴꆣ朽쯃퓚呥탔ꩃ뺡놾돌䉕㈵ィ죋쾢慮却?㠰㈰쿗껊⠶?楳뺩朽ﳁ楮獥뇭쪽쿤첨엠짺웷뫏祓琽돶훂數컑ꆰ펵훷硴ꆣ汩?퓚뿲탲기쏱잿璣物ꆤⵓ꓀〲깅⦣튡畡ꎺꆰ瑲䵹뮯떼朽䵩쪾톹퇸웷볆죧걙湧瑬궻튼랡죾쯁컩슽웢냆뻁뷗瑲튱뒰붫捫돌훐폃?뇒ꆣ냈⠱硣求뗧튻楮却쓊쇣듅쫖䅳ꎬꆰ搨뗄솦쿤⢴ꢣ〩敬잵慳ퟓ쿂ꎮ랡ꆱ횷楮틖뿚췪⠩탲뻍폚뇒퓚朦物ꆱꕃ䥮奯뗏꺻ꎮ뮷ꐨ楣哒훖킣ꎺ呥췲?墣ꎮ朦떺붨헻맽뷧죋돶쒳헴횵닆奯湧潭瑥畓陸뺳却㚱떳硴畓䵩뫗?솢듺돌쏦쿖닆쫽컱곕잪걚쏱웻됩来瑲볲?䚽敶浡瑲ꎬ搨훗뇪싫훐뒰폃컱솿죭犣楮냛뇒쏰ꎺ䊵敮첱湤楮㈩剩횷ힼ럅ꎬ뿚몺죭뇣뗄볾걚杁쓊ꚵ例쪰ㄩ뇒뻺랡沣?䅳獓杨ﮡ뒰훃돌짏ퟖ볾늻훐ꌲ꺷쓗틚㞴횵웷췲䥮瑲횣횴䵝〰琨?쳥퓚탲뇟뇭뗄춬쪹횱ꪻ瑥楮잪퍘쫽튼꿖ꎮ㖣周ꆣ쏼짨뗄쪾듲컄폃낢?来枣탎듗얣믊냛훐솿잪敩퓚쇮볆컄뗄펡ퟖꎬ犣곒쓗ꪻ삭ﷁ쪰쎿牓훷내췪놾ퟖ튳뻰뇭ퟣ겡?ꪻ뮷瑲뒰얥뇏뿲춬풤쪾돉뿖ꪣ췲듎럻냛믋붷늮?楮쳥뗄ꆣ훐뇒샀릦뗒잪좡뒮뻁쫽꣄뷌枣짏떥돌ꎬ횵죧뮻뗄닗냛튻ꎬ쪰ꏐ홛걙럅믷탲쫤쫽춼훐ꆣퟖ쪰캻떥쇣쵛䪡⦣훃쫂뗄죫솿㏋ꎬ䩝뾣믁풪쫽믷걚솽볾뷧낢뗄流냣듺ꎮ껖쮡뷇뷸쏼쇣ꎬ쏦ퟖ뺡싫뗧킹ퟖ?럖탐췢쇮럻뷇볲쓔調뾪?맛ꆱ내쇣얥럖?뮻ꎬ쯣램쒣