數字轉貨幣大寫
阿新 • • 發佈:2019-01-04
//處理特殊情況
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 ""; //若失敗則返回原值
}
}
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 ""; //若失敗則返回原值
}
}