專利名稱:一種數(shù)字對人民幣的轉換裝置和方法
技術領域:
本發(fā)明涉及計算機數(shù)據(jù)的轉換技術,尤其涉及將人民幣數(shù)字轉換為金融等領域的正規(guī)寫 法的裝置和方法。
背景技術:
Office辦公軟件大量在財務等領域使用,在財務等領域人民幣大寫數(shù)字也經(jīng)常要使用到。 現(xiàn)有辦公軟件采用比較直接的方法,很難做到正確將數(shù)字轉換成人民幣大寫數(shù)字。將數(shù)字轉
換成人民幣大寫數(shù)字的規(guī)則中,人民幣大寫數(shù)字正規(guī)寫法是
如果數(shù)字等于0,則轉換為"零元整";
整數(shù)部分如果不為0,則轉換為中文數(shù)字書面寫法大寫,尾部加"元",如"壹佰貳拾叁 元整";
小數(shù)部分從第三位四舍五入,即保留兩位小數(shù);
小數(shù)部分如果等于0,則尾部加"整";
小數(shù)部分第一位轉換為大寫;
小數(shù)部分第二位如果等于0,則尾部添加"角整";
小數(shù)部分第二位如果不等于O,
小數(shù)部分第一位尾部添加"角";
小數(shù)部分第二位轉換為大寫,尾部添加"分"。
另外,負數(shù)的情況在財務中通常用紅色或是其它方式表示,不直接將負號直接顯示,正 數(shù)也不在前加"正"等。
以excel為例
假設A1單元格的數(shù)字等于123.45,要將其轉換為人民幣大寫的結果放入B1單元格, 以公式和數(shù)值格式結合的辦法是,在B1輸入以下公式 =IF(A1<0,"金額為負無效〃,IF(0R(A1=0, Al=〃"), 〃零元整 ",IF(AK1, 〃〃, TEXT (INT (Al) , 〃[dbnum2] [$-804]0")&〃元
〃)&IF(INT(Al*10)-INT(A1)*10=0, IF(INT(A1)*(INT(A1*100)-INT(A1*10)*10)=0, 〃〃,"零
〃),TEXT (INT (Al*10)-INT (Al)*10, 〃[db誦2] [$-804] 0角
〃))&IF ((INT (Al*100) -INT (A*10) *10) =0,"整
〃,TEXT ((INT(Al*100) -INT(Al*10)*10) , 〃 [db誦2] [$-804]0分〃))))
其實就是將上述規(guī)則,用公式實現(xiàn)。
在現(xiàn)已存在的辦公軟件中,將數(shù)字轉換為人民幣大寫的方法,通常有
1) 內(nèi)置函數(shù)組合(以上例子比較典型);要轉換一個數(shù)字需要寫很長的公式,檢査公式的書 寫正確性都是一件很不容易的工作了,更不用說想出這樣一個公式要花多少時間;
2) 擴展外部自定義函數(shù),即利用二次開發(fā)接口對字數(shù)進行特殊格式化,然而其基本思想都 是將數(shù)字分解,按規(guī)則轉換。對于眾多普通Office辦公軟件用戶來說,如此方法很難使用, 二次開發(fā)接口是具有一定編程水平的用戶才有能力使用的,這樣的方法太過"專業(yè)";使用"外 部"功能組合必然導致轉換過程慢,批量處理大量數(shù)據(jù)時效果很明顯;而且攜帶不方便,希 望轉換其它數(shù)據(jù)時,需要改動公式或是二次開發(fā)接口的代碼。
發(fā)明內(nèi)容
為了克服現(xiàn)有的計算機數(shù)字對人民幣的轉換中的不足,本發(fā)明的目的在于提供一種新的 數(shù)字對人民幣的轉換裝置和方法,將復雜的轉換規(guī)則直接內(nèi)置在數(shù)值格式功能中,讓用戶更 方便、快捷的使用Office辦公軟件。
本發(fā)明解決其技術問題所采用的技術方案是
一種數(shù)字對人民幣的轉換裝置,包括有相互連接的輸入設備、顯示設備以及電腦主機; 其中所述數(shù)字對人民幣的轉換裝置還包括有格式字符串識別模塊,用于識別人民幣數(shù)字的數(shù)值格式類型; 分節(jié)處理模塊,用于根據(jù)數(shù)值的大小決定使用不同的分節(jié)格式; 轉換模塊,用于將需要被轉換的數(shù)字轉換為結果字符串; 結果樣式復制模塊,用于將轉換后的樣式復制完成。
一種數(shù)字對人民幣的轉換方法,包括如下步驟-
歩驟一計算機識別格式字符串步驟,格式字符串識別模塊進行識別人民幣數(shù)字的數(shù)值
格式類型;
步驟二計算機分節(jié)處理步驟,分節(jié)處理模塊根據(jù)需要被轉換的數(shù)字的大小,決定使用
不同分節(jié)格式;
步驟三計算機轉換步驟,轉換模塊將需要被轉換的數(shù)字轉換為結果字符串;
步驟四計算機結果樣式步驟,結果樣式復制模塊根據(jù)步驟二中的分節(jié)格式,當處理完
轉換過程后,將轉換后的樣式復制完成。
本發(fā)明的有益效果是采用本發(fā)明的一種新的數(shù)字對人民幣的轉換裝置和方法,優(yōu)點為
簡單易用,效率高。具體的功能體現(xiàn)為-
1、 使用簡單易用的方式轉換數(shù)值為人民幣數(shù)字即可在spreedsheet軟件中用數(shù)值格式 的方式轉換數(shù)值為人民幣數(shù)字大寫,包括自定義類型;可在spreedsheet軟件中用默認數(shù)值格 類型的方式轉換數(shù)值為人民幣數(shù)字大寫,而人民幣數(shù)字有如下幾種均可方便使用人民幣中
文大寫數(shù)字,如"壹佰貳拾叁元整",這種最常用;人民幣中文小寫數(shù)字,如"一百二十三元整 〃;人民幣阿拉伯數(shù)字,如"1百2十3元整"、"12元3角整"。
2、 轉換數(shù)值為人民幣數(shù)字過程中,可區(qū)別處理正數(shù)、負數(shù),具體方法為
2. l轉換數(shù)值為人民幣數(shù)字的結果中,以格式、樣式等的方式區(qū)別正數(shù)、負數(shù),例如負數(shù) 以紅色顯示 〃壹仟貳佰叁拾肆元整〃。顏色、字體、文字方向、對齊方式等均屬格式。
2.2轉換數(shù)值為人民幣數(shù)字的結果中,以括號類型等標記符號的方式區(qū)別正數(shù)、負數(shù),例 如"(壹佰貳拾叁元整)"。小括號0、中括號[]、大括號{}、單引號"、雙引號〃〃等,以及其
全角、半角模式,均屬于標記符號。
2.3轉換數(shù)值為人民幣數(shù)字的結果中,以不顯示或標記錯誤等方式區(qū)別正數(shù)、負數(shù),例如 "金額不能為負"。
3、 轉換數(shù)值為人民幣數(shù)字大寫過程中,可預處理數(shù)值,具體方法為 3.1由于精度需要,以四舍五入的方式預處理數(shù)據(jù)
3.1.1通常人民幣數(shù)字要求精確到分,即第二位小數(shù),需要將數(shù)值的第三位小數(shù)四舍五 入到第二位小數(shù)。
3.1.2根據(jù)3.1.1,精確到角,即第一位小數(shù),需要將數(shù)值的第二位小數(shù)四舍五入到第一 位小數(shù)。
3.1.3根據(jù)3.1.1,精確到元,即整數(shù)部分的個位數(shù),需要將數(shù)值的第一位小數(shù)四舍五入 到整數(shù)部分的個位數(shù)。
3. 1.4根據(jù)3. 1.1,當確定需要精確到一定位數(shù),只需要將其下一位四舍五入到該位。 3.2由于精度需要,以截尾取整的方式預處理數(shù)據(jù)。
3.3由于精度需要,以截尾進一的方式預處理數(shù)據(jù)。
3.4由于后續(xù)處理需要,將數(shù)值預處理為字符串形式等,如將12.3轉換為"12.3"。
4、 轉換數(shù)值過程中,使用特殊處理,繞開轉換規(guī)則的正規(guī)流程,即能轉換為正確結果, 又能簡化流程。
圖1是本發(fā)明一種數(shù)字對人民幣的轉換方法的工作流程示意圖。
具體實施例方式
在數(shù)字對人民幣的轉換過程中
格式,即代表人民幣大寫或小寫數(shù)字的數(shù)值格式類型,該類型是字符串;
數(shù)值,即需要被轉換的數(shù)字;
結果字符串,轉換后的字符串表示形式,其中不包含顏色等樣式信息;
結果樣式,即轉換后的樣式。
本發(fā)明在Office辦公軟件的使用,最終將集中針對以上四個要素——格式、數(shù)值、結果 字符串和結果樣式進行處理。
本發(fā)明公開一種數(shù)字對人民幣的轉換裝置,包括有相互連接的輸入設備、顯示設備以及 電腦主機;其中所述數(shù)字對人民幣的轉換裝置還包括有
格式字符串識別模塊,用于識別人民幣數(shù)字的數(shù)值格式類型; 分節(jié)處理模塊,用于根據(jù)數(shù)值的大小決定使用不同的分節(jié)格式; 轉換模塊,用于將需要被轉換的數(shù)字轉換為結果字符串; 結果樣式復制模塊,用于將轉換后的樣式復制完成。
如圖1所示,本發(fā)明還公開一種數(shù)字對人民幣的轉換方法,包括如下步驟 步驟一計算機識別格式字符串步驟,格式字符串識別模塊進行識別人民幣數(shù)字的數(shù)值 格式類型;
步驟二計算機分節(jié)處理步驟,分節(jié)處理模塊根據(jù)需要被轉換的數(shù)字的大小,決定使用 不同分節(jié)格式;
步驟三計算機轉換步驟,轉換模塊將需要被轉換的數(shù)字轉換為結果字符串;
步驟四計算機結果樣式步驟,結果樣式復制模塊根據(jù)步驟二中的分節(jié)格式,當處理完 轉換過程后,將轉換后的樣式復制完成。
所述一種數(shù)字對人民幣的轉換方法,其中,所述識別格式字符串步驟中,格式字符串中 可以包含以下正確的格式片斷- 指明為第二頁數(shù)值碼頁,即大寫數(shù)字; 指明使用人民幣類型進行轉換;
G/通用格式指明用常規(guī)數(shù)值處理;可以是其它表示常規(guī)的方式,如General; [顏色] 指明結果使用的顏色;是結果樣式的內(nèi)容之一,通常為紅色,還可以是蘭
色等其它顏色;[$-804] 指明該格式使用中文字符編碼。
本發(fā)明在WPS Office中的WPS表格模塊中的典型用況是〃[DBNum2][SRMB]G/通用格 式;[紅色][DBNum2],MB]G/通用格式〃,其意義是以人民幣大寫數(shù)字的類型轉換數(shù)值,正 數(shù)和零使用正常樣式,負數(shù)用紅色表示。例如 〃壹仟貳佰叁拾肆元整〃、 〃壹仟貳佰叁拾肆元 整〃 (紅色)。
在格式字符串中,可以指定樣式,如紅色等。
所述一種數(shù)字對人民幣的轉換方法,其中,所述計算機分節(jié)處理步驟中,分節(jié)處理模塊
根據(jù)數(shù)值的大小,決定使用不同分節(jié)格式;當數(shù)值大于零時,使用第一節(jié)格式;當數(shù)值小于 零時用第二節(jié)格式;當數(shù)值等于零時用第三節(jié)格式;數(shù)值不是數(shù)字時使用第四節(jié)格式。
以〃[DBNum2][SRMB]G/通用格式;[紅色][DBNum2] [SRMB]G/通用格式〃為例,如果數(shù)值為 1234,則使用"[DBNum2][SRMB]G/通用格式〃部分的格式進行轉換;如果數(shù)值為-1234,則使用 〃[紅色][DBNum2] [SRMB]G/通用格式〃部分的格式進行轉換。
所述一種數(shù)字對人民幣的轉換方法,其中,所述計算機轉換步驟中,轉換模塊將數(shù)值轉 換為基本數(shù)字字符串,即轉換為0.00; 0.00的格式;將數(shù)值轉換為以阿拉伯數(shù)字形式的字 符串,保留兩位小數(shù),第三位小數(shù)進行四舍五入,省略負號。例如-12.345將轉換為〃12.35"。
所述一種數(shù)字對人民幣的轉換方法,其中,所述計算機轉換步驟中,轉換模塊轉換整數(shù) 部分,即轉換為中文大寫形式的方法為整數(shù)部分是基本數(shù)字字符串中,小數(shù)點"."的左側,
1) 當整數(shù)部分的長度為l,且該惟一位上是"0〃時,不轉換整數(shù)部分,并且記錄為無整數(shù) 部分;
2) 當l)不成立時,以中文數(shù)字書面寫法大寫規(guī)則轉換,并且記錄為有整數(shù)部分,在轉 換完后在尾部添加"元"。
所述一種數(shù)字對人民幣的轉換方法,其中,所述計算機轉換步驟中,轉換模塊轉換小數(shù)部 分的方法為小數(shù)部分是基本數(shù)字字符串中,小數(shù)點"."的右側, 轉換第一位小數(shù)
1) 當一位小數(shù)不為"O"時,將該位轉換為相應的中文大寫數(shù)字字符,在轉換完后在尾部 添加"角";
2) 當l)不成立時,即第一位為〃0〃;
當有整數(shù)部分且第二位小數(shù)不為〃0〃時,在尾部添加〃零〃,否則不作任何處理; 轉換第二位小數(shù)當?shù)诙恍?shù)不為"O"時,將該位轉換為相應的中文大寫數(shù)字字符,在 轉換完后在尾部添加"分";否則不作任何處理。
零的處理當以上轉換的結果字符串為空字符串(字符串的長度等于O)時,在尾部添加"
零〃;
當以上轉換的結果字符串的最后一位不為"分"時,在尾部添加"整〃;到此結束數(shù)值的轉 換處理。
所述一種數(shù)字對人民幣的轉換方法,其中,在每一分節(jié)格式中,都可以包含指定的樣式, 結果樣式取決于分節(jié)處理步驟中的分節(jié)格式,當處理完轉換過程后,結果樣式復制模塊會將 其樣式復制成結果樣式。
所述一種數(shù)字對人民幣的轉換方法,其中,在轉換數(shù)值為人民幣數(shù)字過程中,可區(qū)別處 理正數(shù)、負數(shù),具體方法為轉換數(shù)值為人民幣數(shù)字的結果中,以格式、樣式等的方式區(qū)別 正數(shù)、負數(shù),負數(shù)以其他顏色顯示;或者轉換數(shù)值為人民幣數(shù)字的結果中,以括號類型等標 記符號的方式區(qū)別正數(shù)、負數(shù);或者轉換數(shù)值為人民幣數(shù)字的結果中,以不顯示或標記錯誤 等方式區(qū)別正數(shù)、負數(shù)。
所述一種數(shù)字對人民幣的轉換方法,其中,轉換數(shù)值為人民幣數(shù)字大寫過程中,可預處 理數(shù)值,具體方法為
1.由于精度需要,以四舍五入的方式預處理數(shù)據(jù)
1. l.通常人民幣數(shù)字要求精確到分,即第二位小數(shù),需要將數(shù)值的第三位小數(shù)四舍五入 到第二位小數(shù);
1.2. 根據(jù)1.1,精確到角,即第一位小數(shù),需要將數(shù)值的第二位小數(shù)四舍五入到第一位小
數(shù);
1.3. 根據(jù)1.1,精確到元,即整數(shù)部分的個位數(shù),需要將數(shù)值的第一位小數(shù)四舍五入到整 數(shù)部分的個位數(shù);
1.4. 根據(jù)1. 1,當確定需要精確到一定位數(shù),只需要將其下一位四舍五入到該位;
2. 由于精度需要,以截尾取整的方式預處理數(shù)據(jù);
3. 由于精度需要,以截尾進一的方式預處理數(shù)據(jù);
4. 由于后續(xù)處理需要,將數(shù)值預處理為字符串形式。
上述所列具體實現(xiàn)方式為非限制性的,對本領域的技術人員來說,在不偏離本發(fā)明范圍 內(nèi),進行的各種改進和變化,均屬于本發(fā)明的保護范圍。
權利要求
1、一種數(shù)字對人民幣的轉換裝置,包括有相互連接的輸入設備、顯示設備以及電腦主機;其特征在于,所述數(shù)字對人民幣的轉換裝置還包括有格式字符串識別模塊,用于識別人民幣數(shù)字的數(shù)值格式類型;分節(jié)處理模塊,用于根據(jù)數(shù)值的大小決定使用不同的分節(jié)格式;轉換模塊,用于將需要被轉換的數(shù)字轉換為結果字符串;結果樣式復制模塊,用于將轉換后的樣式復制完成。
全文摘要
本發(fā)明提供一種新的數(shù)字對人民幣的轉換裝置和方法,將復雜的轉換規(guī)則直接內(nèi)置在數(shù)值格式功能中,讓用戶更方便、快捷的使用Office辦公軟件。本發(fā)明解決其技術問題所采用的技術方案是一種數(shù)字對人民幣的轉換裝置,包括有相互連接的輸入設備、顯示設備以及電腦主機;其中所述數(shù)字對人民幣的轉換裝置還包括有格式字符串識別模塊,用于識別人民幣數(shù)字的數(shù)值格式類型;分節(jié)處理模塊,用于根據(jù)數(shù)值的大小決定使用不同的分節(jié)格式;轉換模塊,用于將需要被轉換的數(shù)字轉換為結果字符串;結果樣式復制模塊,用于將轉換后的樣式復制完成。
文檔編號G06F17/28GK101196879SQ20061012410
公開日2008年6月11日 申請日期2006年12月7日 優(yōu)先權日2006年12月7日
發(fā)明者張祖緣, 波 陳 申請人:珠海金山軟件股份有限公司