以上js代码经过测试,可以完全通过测试。
 但是,如果给函数传递的值是负数,如:-1234567 该js方法就不会处理了。哪个高人帮着改写一下。让它能处理正数,也能处理负数,,现在处理证书,已经ok了。拜托,哪个高人再帮着改写下处理负数的部门啊。。

解决方案 »

  1.   

    <script>
    //#######################
    //        数字格式化函数
    //  用法:本函数用来格式化数字。
    //  参数:num(数值型):要进行格式化的数值型变量;
    // decimalNum(整型) :要保留的小数位数;
    // bolLeadingZero (布尔型:true或 false):对-1<num<1之间的数是否要添加前导数字0;
    // bolParens (布尔型:true或 false):在负号后是否使用小括号;
    // bolCommas (布尔型:true或 false):是否用“,”隔开数字位。
    //  返回值:经过格式化的数字字符串。
    //#######################
    //  下面是例子:
    alert(FormatNumber(1000,0,false,false,true))function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
    {
            if (isNaN(parseInt(num))) return "NaN"; var tmpNum = num;
    var iSign = num < 0 ? -1 : 1; // 得到数字符号 // 调整小数点位数到给定的数字。
    tmpNum *= Math.pow(10,decimalNum);
    tmpNum = Math.round(Math.abs(tmpNum))
    tmpNum /= Math.pow(10,decimalNum);
    tmpNum *= iSign; // 重新调整符号
    var tmpNumStr = new String(tmpNum); // 处理是否有前导0
    if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
    if (num > 0)
    tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
    else
    tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length); //处理是否有逗号
    if (bolCommas && (num >= 1000 || num <= -1000)) {
    var iStart = tmpNumStr.indexOf(".");
    if (iStart < 0)
    iStart = tmpNumStr.length; iStart -= 3;
    while (iStart >= 1) {
    tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
    iStart -= 3;
    }
    } // 处理是否有括号
    if (bolParens && num < 0)
    tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")"; return tmpNumStr; // 返回格式化后字符串
    }
    </script>
      

  2.   

    <script>
    //#######################
    //        数字格式化函数
    //  用法:本函数用来格式化数字。
    //  参数:num(数值型):要进行格式化的数值型变量;
    // decimalNum(整型) :要保留的小数位数;
    // bolLeadingZero (布尔型:true或 false):对-1<num<1之间的数是否要添加前导数字0;
    // bolParens (布尔型:true或 false):在负号后是否使用小括号;
    // bolCommas (布尔型:true或 false):是否用“,”隔开数字位。
    //  返回值:经过格式化的数字字符串。
    //#######################
    //  下面是例子:
    alert(FormatNumber(1234567.8,2,false,false,true))function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
    {
            if (isNaN(parseInt(num))) return "NaN"; var tmpNum = num;
    var iSign = num < 0 ? -1 : 1; // 得到数字符号 // 调整小数点位数到给定的数字。
    tmpNum *= Math.pow(10,decimalNum);
    tmpNum = Math.round(Math.abs(tmpNum))
    tmpNum /= Math.pow(10,decimalNum);
    tmpNum *= iSign; // 重新调整符号
    var tmpNumStr = new String(tmpNum); // 处理是否有前导0
    if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
    if (num > 0)
    tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
    else
    tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length); //处理是否有逗号
    if (bolCommas && (num >= 1000 || num <= -1000)) {
    var iStart = tmpNumStr.indexOf(".");
    if (iStart < 0)
    iStart = tmpNumStr.length; iStart -= 3;
    while (iStart >= 1) {
    tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
    iStart -= 3;
    }
    } // 处理是否有括号
    if (bolParens && num < 0)
    tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")"; return tmpNumStr; // 返回格式化后字符串
    }
    </script>