//保留2位小数 function changeTwoDecimal(x) { var f_x = parseFloat(x); if (isNaN(f_x)){ alert('不是一个有效的数字!~'); return false; } var f_x = Math.round(x*100)/100; return changeTwoDecimal_f(f_x); }; function changeTwoDecimal_f(x) { var f_x = parseFloat(x); if (isNaN(f_x)) { alert('不是一个有效的数字'); return false; } var f_x = Math.round(x*100)/100; var s_x = f_x.toString(); var pos_decimal = s_x.indexOf('.'); if (pos_decimal < 0) { pos_decimal = s_x.length; s_x += '.'; } while (s_x.length <= pos_decimal + 2) { s_x += '0'; } return s_x; } ;
//金额转化为文字 function ChangeToBig(value) { var intFen,i; var strArr,strCheck,strFen,strDW,strNum,strBig,strNow; if (value == null) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!" alert(strErr); return ""; } if(value==0) 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 ""; //若失败则返回原值 } }