/* ===========================================================
模块说明:对于javascript字符串操作的一些补充功能
charset:gb2312
调用模块:stringutils.js
搜集整理:sagahu@163.com
最后修订:2011-12-12
*/
// 把给定非负整数按照指定位数要求格式化为编码
function coding(uint, len) {
var code = '00000000000000000000000' + uint.toString();
return code.substring(code.length - len, code.length);
}
// 格式化浮点数的显示:每3位一“,”分隔,小数点后保留指定精度位数。
function formatFloat(value, prec) {
var value1 = (Math.round(value * Math.pow(10, prec)) / Math.pow(10, prec)).toString();
var arr = value1.split('.');
var left = arr[0];
var right = arr[1] == null ? '00000000000000000000' : arr[1] + '00000000000000000000';
var left2 = '';
for (j = left.length - 1; j >= 0; j--) {
left2 = left.charAt(j) + left2;
if ((left.length - j) == left.length) break;
if ((left.length - j) % 3 == 0) left2 = ',' + left2;
}
var right2 = '';
for (i = 0; i < right.length; i++) {
right2 += right.charAt(i);
if ((i + 1) == prec) break;
if ((i + 1) % 3 == 0) right2 += ',';
}
return left2 + '.' + right2;
}
// 从格式化浮点数字符串还原为浮点数
function formatFloatReverse(floatStr) {
return parseFloat(floatStr.replace(/,/g, ''));
}
// 从小写货币数值转换为汉字大写字符串
function bigMoney(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];
var len = strCheck.length;
if (len > 12) {
strErr = "数据" + value + "过大,无法处理!";
alert(strErr);
return "";
}
try {
i = 0;
strBig = "";
var s00 = "00";
var svalue = value + "";
var ipos = svalue.indexOf(".");
var iiLen = svalue.length;
if (ipos < 0) {
strFen = svalue + "00";
} else if (ipos == iiLen - 2) {
strFen = svalue.substring(0, iiLen - 2) + svalue.substring(iiLen - 1, iiLen) + "0";
} else if (ipos == iiLen - 3) {
strFen = svalue.substring(0, iiLen - 3) + svalue.substring(iiLen - 2, iiLen);
} else {
strFen = svalue.substring(0, ipos) + svalue.substring(ipos + 1, ipos + 3);
}
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("");
}
if (strBig == "整") { strBig = "零"; }
return strBig;
} catch (err) {
return "";
}
}