当前位置:编程学习 > JAVA >>

分享5个javascript的数字格式化函数

 

Javascript没有任何内建的格式化函数,这里我们通过Google收集了5个javascript的数字格式化函数,希望对于大家的web开发能够带来方便。

十进制四舍五入

这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用:

代码1:

function CurrencyFormatted(amount) {

    var i = parseFloat(amount);

    if(isNaN(i)) { i = 0.00; }

    var minus = '';

    if(i < 0) { minus = '-'; }

    i = Math.abs(i);

    i = parseInt((i + .005) * 100);

    i = i / 100;

    s = new String(i);

    if(s.indexOf('.') < 0) { s += '.00'; }

    if(s.indexOf('.') == (s.length - 2)) { s += '0'; }

    s = minus + s;

    return s;

}

 

/**

*   Usage:  CurrencyFormatted(12345.678);

*   result: 12345.68

**/

代码2:

function format_number(pnumber,decimals){

    if (isNaN(pnumber)) { return 0};

    if (pnumber=='') { return 0};

    

    var snum = new String(pnumber);

    var sec = snum.split('.');

    var whole = parseFloat(sec[0]);

    var result = '';

    

    if(sec.length > 1){

        var dec = new String(sec[1]);

        dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));

        dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));

        var dot = dec.indexOf('.');

        if(dot == -1){

            dec += '.';

            dot = dec.indexOf('.');

        }

        while(dec.length <= dot + decimals) { dec += '0'; }

        result = dec;

    } else{

        var dot;

        var dec = new String(whole);

        dec += '.';

        dot = dec.indexOf('.');   

        while(dec.length <= dot + decimals) { dec += '0'; }

        result = dec;

    } 

    return result;

}

 

/**

*   Usage:  format_number(12345.678, 2);

*   result: 12345.68

**/

添加逗号

这俩段代码帮助你添加逗号到每三位数字中,这让大的数字比较容易查看。

代码1:

 

function CommaFormatted(amount) {

    var delimiter = ","; // replace comma if desired

    amount = new String(amount);

    var a = amount.split('.',2)

    var d = a[1];

    var i = parseInt(a[0]);

    if(isNaN(i)) { return ''; }

    var minus = '';

    if(i < 0) { minus = '-'; }

    i = Math.abs(i);

    var n = new String(i);

    var a = [];

    while(n.length > 3)

    {

        var nn = n.substr(n.length-3);

        a.unshift(nn);

        n = n.substr(0,n.length-3);

    }

    if(n.length > 0) { a.unshift(n); }

    n = a.join(delimiter);

    if(d.length < 1) { amount = n; }

    else { amount = n + '.' + d; }

    amount = minus + amount;

    return amount;

}

 

/**

*   Usage:  CommaFormatted(12345678);

*   result: 12,345,678

**/

代码2:

function addCommas(nStr) {

    nStr += '';

    var x = nStr.split('.');

    var x1 = x[0];

    var x2 = x.length >; 1 ? '.' + x[1] : '';

    var rgx = /(d+)(d{3})/;

    

    while (rgx.test(x1)) {

        x1 = x1.replace(rgx, '$1' + ',' + '$2');

    }

    

    return x1 + x2;

}

 

/**

*   Usage:  addCommas(12345678);

*   result: 12,345,678

**/

数字格式化,来自PHP

这段javascript代码功能设计来自PHP的nubmer_format功能。能够四舍五入并且加入逗号分隔。而且可以自定义10进制分隔。

function number_format (number, decimals, dec_point, thousands_sep) {

 

    number = (number + '').replace(/[^0-9+-Ee.]/g, '');

    var n = !isFinite(+number) ? 0 : +number,

        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),

        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,

        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,

        s = '',

        toFixedFix = function (n, prec) {

            var k = Math.pow(10, prec);

            return '' + Math.round(n * k) / k;

        };

    // Fix for IE parseFloat(0.55).toFixed(0) = 0;

    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');

    if (s[0].length > 3) {

        s[0] = s[0].replace(/B(?=(?:d{3})+(?!d))/g, sep);

    }

    if ((s[1] || '').length < prec) {

        s[1] = s[1] || '';

        s[1] += new Array(prec - s[1].length + 1).join('0');

    }

    return s.join(dec);

}

 

/**

*   Usage:  number_format(123456.789, 2, '.', ',');

*   result: 123,456.79

**/

添加一个英文的排序后缀

Number.pr

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,