- function ChangeToBig(value)
- {
- var intFen,i;
- var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;
- /**
- if(trim(value)=="") //数据为空时返回"零"
- return "零";
- if (isNaN(value)) //数据非法时提示,并返回空串
- {
- strErr = "数据"+value+"非法!"
- alert(strErr);
- return "";
- }
- **/
- strCheck = value+".";
- strArr = strCheck.split(".");
- strCheck = strArr[0];
- if(strCheck.length>12) //数据大于等于一万亿时提示无法处理
- {
- strErr = "数据"+value+"过大,无法处理!"
- alert(strErr);
- return "";
- }
- try
- {
- i = 0;
- strBig = "";
- intFen = value*100; //转换为以分为单位的数值
- strFen = intFen.toString();
- strArr = strFen.split(".");
- strFen = strArr[0];
- intFen = strFen.length; //获取长度
- strArr = strFen.split(""); //将各个数值分解到数组内
- while(intFen!=0) //分解并转换
- {
- i = i+1;
- switch(i) //选择单位
- {
- case 1:strDW = "分";break;
- case 2:strDW = "角";break;
- case 3:strDW = "元";break;
- case 4:strDW = "拾";break;
- case 5:strDW = "佰";break;
- case 6:strDW = "仟";break;
- case 7:strDW = "万";break;
- case 8:strDW = "拾";break;
- case 9:strDW = "佰";break;
- case 10:strDW = "仟";break;
- case 11:strDW = "亿";break;
- case 12:strDW = "拾";break;
- case 13:strDW = "佰";break;
- case 14:strDW = "仟";break;
- }
- switch (strArr[intFen-1]) //选择数字
- {
- case "1":strNum = "壹";break;
- case "2":strNum = "贰";break;
- case "3":strNum = "叁";break;
- case "4":strNum = "肆";break;
- case "5":strNum = "伍";break;
- case "6":strNum = "陆";break;
- case "7":strNum = "柒";break;
- case "8":strNum = "捌";break;
- case "9":strNum = "玖";break;
- case "0":strNum = "零";break;
- }
- //处理特殊情况
- 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 ""; //若失败则返回原值
- }
- }
js 小写转成大写
最新推荐文章于 2024-01-26 16:00:00 发布