1. 程式人生 > >數字轉貨幣大寫

數字轉貨幣大寫

                //處理特殊情況
                strNow = strBig.split("");
                //分為零時的情況
                if ((i==1)&&(strArr[intFen-1]=="0"))
                     strBig = "整";
                //角為零時的情況
                else if((i==2)&&(strArr[intFen-1]=="0"))
                {    //角分同時為零時的情況
                     if(strBig!="整")
                          strBig = "零"+strBig;
                }
                //元為零的情況
                else if((i==3)&&(strArr[intFen-1]=="0"))
                     strBig = "元"+strBig;
                //拾-仟中一位為零且其前一位(元以上)不為零的情況時補零
                else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元"))
                     strBig = "零"+strBig;
                //拾-仟中一位為零且其前一位(元以上)也為零的情況時跨過
                else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
                {} 
                 //拾-仟中一位為零且其前一位是元且為零的情況時跨過
                else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元"))
                {}
                //當萬為零時必須補上萬字
                else if((i==7)&&(strArr[intFen-1]=="0"))
                     strBig ="萬"+strBig;
                //拾萬-仟萬中一位為零且其前一位(萬以上)不為零的情況時補零
                else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="萬"))
                     strBig = "零"+strBig;
                //拾萬-仟萬中一位為零且其前一位(萬以上)也為零的情況時跨過
                else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="萬"))
                {}
                //拾萬-仟萬中一位為零且其前一位為萬位且為零的情況時跨過
                else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
                {}
                //萬位為零且存在仟位和十萬以上時,在萬仟間補零
                else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="萬")&&(strNow[2]=="仟"))
                     strBig = strNum+strDW+"萬零"+strBig.substring(1,strBig.length);
                //單獨處理億位
                else if(i==11)
                {
                //億位為零且萬全為零存在仟位時,去掉萬補為零
                     if((strArr[intFen-1]=="0")&&(strNow[0]=="萬")&&(strNow[2]=="仟"))
                          strBig ="億"+"零"+strBig.substring(1,strBig.length);
                //億位為零且萬全為零不存在仟位時,去掉萬
                     else if((strArr[intFen-1]=="0")&&(strNow[0]=="萬")&&(strNow[2]!="仟"))
                          strBig ="億"+strBig.substring(1,strBig.length);
                     //億位不為零且萬全為零存在仟位時,去掉萬補為零
                     else if((strNow[0]=="萬")&&(strNow[2]=="仟"))
                          strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length);
                     //億位不為零且萬全為零不存在仟位時,去掉萬 
                     else if((strNow[0]=="萬")&&(strNow[2]!="仟"))
                          strBig = strNum+strDW+strBig.substring(1,strBig.length); 
                     //其他正常情況
                     else
                          strBig = strNum+strDW+strBig;
                }
                //拾億-仟億中一位為零且其前一位(億以上)不為零的情況時補零
                else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="億"))
                     strBig = "零"+strBig;
                //拾億-仟億中一位為零且其前一位(億以上)也為零的情況時跨過
                else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="億"))
                {}
                //拾億-仟億中一位為零且其前一位為億位且為零的情況時跨過
                else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
                 {}
                //億位為零且不存在仟萬位和十億以上時去掉上次寫入的零
                else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="億")&&(strNow[3]!="仟"))
                     strBig = strNum+strDW+strBig.substring(1,strBig.length);
                //億位為零且存在仟萬位和十億以上時,在億仟萬間補零
                else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="億")&&(strNow[3]=="仟"))
                     strBig = strNum+strDW+"億零"+strBig.substring(2,strBig.length);
                else
                     strBig = strNum+strDW+strBig;
                     strFen = strFen.substring(0,intFen-1);
                     intFen = strFen.length;
                     strArr = strFen.split("");
                }
                return strBig;
           }catch(err){
                return "";      //若失敗則返回原值
     } 
}