『壹』 將數字貨幣金額轉換為大寫格式
【實例描述】
在處理財務賬款時,一般需要使用大寫金額。如果在銀行進行儲蓄或轉賬,也需要將數字金
額寫成大寫格式。也就是說,如果要轉賬123456元,則
需要寫成「壹拾貳萬叄仟肆佰伍拾陸元整」。對於這種情
況,如果手動填寫不僅麻煩,而且容易出錯,所以我們
可以設計一個程序來自動完成數字格式的轉換。本實例
實現了小寫金額到大寫金額的轉換,實例的運行效果如
圖4.2所示。
圖4.2將數字貨幣金額轉換為大寫格式
【實現過程】
(1)在Eclipse中新建項目MoneyConvert,並在其中創建一個MoneyConvert.java文件。
在該類的主方法中創建標准輸入流的掃描器對象,接收用戶輸入的數字金額。然後在通過
convert()方法把這個金額轉換成大寫金額的字元串格式,並輸出到控制台。核心代碼如下所示:
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);//創建掃描器
System.out.println("請輸入一個金額");
//獲取金額轉換後的字元串
Stringconvert=convert(scan.nextDouble());
System.out.println(convert);//輸出轉換結果
}
(2)編寫金額轉換方法convert(),該方法在主方法中被調用,用於金額數字向大寫格式的
轉換。在該方法中創建DecimalFormat類的實例對象,通過這個格式器對象把金額數字格式化,
只保留三位小數。然後分別調用getInteger()與getDecimal()方法轉換整數與小數部分,並返回
轉換後的結果。關鍵代碼如下:
publicstaticStringconvert(doubled){
//實例化DecimalFormat對象
DecimalFormatdf=newDecimalFormat("#0.###");
//格式化double數字
StringstrNum=df.format(d);
//判斷是否包含小數點
if(strNum.indexOf(".")!=-1){
Stringnum=strNum.substring(0,strNum.indexOf("."));
//整數部分大於12不能轉換
if(num.length()>12){
System.out.println("數字太大,不能完成轉換!");
return"";
}
}
Stringpoint="";//小數點
if(strNum.indexOf(".")!=-1){
point="元";
}else{
point="元整";
}
//轉換結果
Stringresult=getInteger(strNum)+point+getDecimal(strNum);
if(result.startsWith("元")){//判斷是字元串是否已"元"結尾
result=result.substring(1,result.length());//截取字元串
}
returnresult;//返回新的字元串
}
(3)編寫getInteger()方法,用於轉換數字整數部分的大寫格式。在該方法中判斷數字是否
包含小數點,然後把數字轉換為字元串並反轉字元順序,為每個數字添加對應的大寫單位。關
鍵代碼如下:
publicstaticStringgetInteger(Stringnum){
if(num.indexOf(".")!=-1){//判斷是否包含小數點
um=num.substring(0,num.indexOf("."));
}
um=newStringBuffer(num).reverse().toString();//反轉字元串
StringBuffertemp=newStringBuffer();//創建一個StringBuffer
對象
for(inti=0;i<num.length();i++){//加入單位
temp.append(STR_UNIT[i]);
temp.append(STR_NUMBER[num.charAt(i)-48]);
}
um=temp.reverse().toString();//反轉字元串
um=numReplace(num,"零拾","零");//替換字元串的字元
um=numReplace(num,"零佰","零");//替換字元串的字元
um=numReplace(num,"零仟","零");//替換字元串的字元
um=numReplace(num,"零萬","萬");//替換字元串的字元
um=numReplace(num,"零億","億");//替換字元串的字元
um=umReplace(num,"零零","零");//替換字元串的字元
um=numReplace(num,"億萬","億");//替換字元串的字元
//如果字元串以零結尾將其除去
if(num.lastIndexOf("零")==num.length()-1){
um=num.substring(0,num.length()-1);
}
returnum;
}
publicstaticStringgetDecimal(Stringnum){
//判斷是否包含小數點
if(num.indexOf(".")==-1){
return"";
}
um=um.substring(num.indexOf(".")+1);
//反轉字元串
um=newStringBuffer(num).reverse().toString();
//創建一個StringBuffer對象
StringBuffertemp=newStringBuffer();
//加入單位
for(inti=0;i<num.length();i++){
temp.append(STR_UNIT2[i]);
temp.append(STR_NUMBER[num.charAt(i)-48]);
}
um=temp.reverse().toString();//替換字元串的字元
um=umReplace(num,"零角","零");//替換字元串的字元
um=numReplace(num,"零分","零");//替換字元串的字元
um=numReplace(num,"零厘","零");//替換字元串的字元
um=umReplace(num,"零零","零");//替換字元串的字元
//如果字元串以零結尾將其除去
if(num.lastIndexOf("零")==num.length()-1){
um=num.substring(0,um.length()-1);
}
returnnum;
}
publicstaticStringumReplace(Stringnum,StringoldStr,StringnewStr)
{
while(true){
//判斷字元串中是否包含指定字元
if(num.indexOf(oldStr)==-1){
break;
}
//替換字元串
num=num.replaceAll(oldStr,newStr);
}
//返回替換後的字元串
returnum;
}
【代碼解析】
實現本實例的關鍵在於以下幾點:
_將數字格式化,如果存在小數部分,將其轉換為3位小數,精確到厘。
_分別將整數部分與小數部分轉換為大寫格式,並插入其單位(億、萬、仟??)。
_組合轉換後的整數部分與小數部分。
【知識擴展】
DecimalFormat類可以指定格式化模板來格式化浮點數,如保留幾位小數。通過調用該類
的format()方法可以使用指定模板來格式化任意浮點數字。
『貳』 EXCEL 單元格里的貨幣(含小數點)數字格式如何用公式轉為文本
=SUBSTITUTE(IF(A2,IF(A2<0,"負",)&TEXT(TRUNC(A2),"[dbnum2]g/通用格式元;[dbnum2]g/通用格式元;")&TEXT(RIGHT(RMB(A2),2),"[>9][dbnum2]0角0分;[>0][dbnum2]00分;整"),"零元"),"零分","整")
『叄』 如何將小寫金額轉換為大寫金額
小寫金額轉換為大寫金額的方法有以下幾種:
使用Excel內置函數:
在Excel中,可以直接使用內置的CONVERT函數來實現小寫金額轉大寫。具體操作為輸入「=CONVERT(A1, 「人民幣元」)」,然後將公式拖動到整個單元格區域即可。
也可以使用IF和LEN函數組合來完成。首先需要判斷單元格中的小數點位置,根據判斷結果分別處理帶小數和不帶小數的情況,最後將轉換後的金額顯示在新的單元格中。
手動轉換:
將小寫金額分為「整金額」和「小數部分」,然後分別將其轉換為大寫金額。例如,整金額部分按照數位逐級轉換,而小數部分則通常轉換為「角」和「分」。
使用在線轉換工具:
有些網站提供了在線的人民幣大小寫轉換工具。只需在數字金額小寫輸入框中填入人民幣的小寫阿拉伯數字金額,然後點擊「金額大寫轉換」按鈕即可。
在進行大小寫轉換時,需要注意以下幾點:
確保輸入的小寫金額是正確的,並且符合人民幣的數值規范。
轉換時,注意保留小數位數,確保轉換後的大寫金額與原始金額在數值上保持一致。
轉換後的大寫金額應符合中文書寫規范,例如使用正確的中文數字和單位。
總之,根據具體的需求和場景,可以選擇合適的方法進行小寫金額到大寫金額的轉換。如需更多信息,可查閱相關的財務或會計書籍,或者咨詢專業的財務或會計人員。
『肆』 電子表格里的數字貨幣金額怎樣轉換成中文大寫 好看網
在設置單元格格式里選擇貨幣,如果想轉為大寫,選特殊--中文
大寫數字