代码改变世界

保留小数点的方法(同时可以四舍五入)

2016-01-05 10:39  历久弥新  阅读(232)  评论(0)    收藏  举报

function ToFixed(value, digits) {

    var str = value.toString();

    var index = str.indexOf(".");

    var strInt = str;

    var strDec = "";

 

    if (index > 0) {

        strInt = str.substr(0, index);

        strDec = str.substr(index + 1, digits);

    }

    while (strDec.length < digits) {

        strDec += "0";

    }

    var integer = strInt + strDec;

    if (index > 0) {

        var nums = new Array();

        var dec = str.substr(index + 1 + digits);//取舍小数部分

        for (var i = 0; i < dec.length; i++) {

            nums.push(dec.charAt(i));//拆分每个数字

        }

        var n1;

        var n2;

        while (nums.length > 1) {

            n1 = nums.pop();

            if (n1 > 4) {

                n2 = nums[nums.length - 1] + 1;

                nums[nums.length - 1] = n2;

            }

 

        }

        if (nums.length && nums[nums.length - 1] > 4)

            integer++;

 

    }

    str = integer.toString();

    if (digits == 0)

        return str;

    while (str.length < strInt.length + strDec.length) {

        str = "0" + str;

    }

    return str.substr(0, str.length - digits) + "." + str.substr(str.length - digits);

}

 

 

调用如  ToFixed(value,2)   即保留两位小数