小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

分享5個javascript的數(shù)字格式化函數(shù)

 集微筆記 2013-11-20

Javascript沒有任何內建的格式化函數(shù),這里我們通過Google收集了5個javascript的數(shù)字格式化函數(shù),希望對于大家的web開發(fā)能夠帶來方便。

十進制四舍五入

這兩段代碼幫助你做到四舍五入,對于你顯示價格或者訂單比較有用:

代碼1:

01 function CurrencyFormatted(amount) {
02     var i = parseFloat(amount);
03     if(isNaN(i)) { i = 0.00; }
04     var minus = '';
05     if(i < 0) { minus = '-'; }
06     i = Math.abs(i);
07     i = parseInt((i + .005) * 100);
08     i = i / 100;
09     s = new String(i);
10     if(s.indexOf('.') < 0) { s += '.00'; }
11     if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
12     s = minus + s;
13     return s;
14 }
15    
16 /**
17 *   Usage:  CurrencyFormatted(12345.678);
18 *   result: 12345.68
19 **/
代碼2:
01 function format_number(pnumber,decimals){
02     if (isNaN(pnumber)) { return 0};
03     if (pnumber=='') { return 0};
04        
05     var snum = new String(pnumber);
06     var sec = snum.split('.');
07     var whole = parseFloat(sec[0]);
08     var result = '';
09        
10     if(sec.length > 1){
11         var dec = new String(sec[1]);
12         dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
13         dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
14         var dot = dec.indexOf('.');
15         if(dot == -1){
16             dec += '.';
17             dot = dec.indexOf('.');
18         }
19         while(dec.length <= dot + decimals) { dec += '0'; }
20         result = dec;
21     } else{
22         var dot;
23         var dec = new String(whole);
24         dec += '.';
25         dot = dec.indexOf('.');    
26         while(dec.length <= dot + decimals) { dec += '0'; }
27         result = dec;
28     }  
29     return result;
30 }
31    
32 /**
33 *   Usage:  format_number(12345.678, 2);
34 *   result: 12345.68
35 **/

添加逗號

這倆段代碼幫助你添加逗號到每三位數(shù)字中,這讓大的數(shù)字比較容易查看。

01 function CommaFormatted(amount) {
02     var delimiter = ","; // replace comma if desired
03     amount = new String(amount);
04     var a = amount.split('.',2)
05     var d = a[1];
06     var i = parseInt(a[0]);
07     if(isNaN(i)) { return ''; }
08     var minus = '';
09     if(i < 0) { minus = '-'; }
10     i = Math.abs(i);
11     var n = new String(i);
12     var a = [];
13     while(n.length > 3)
14     {
15         var nn = n.substr(n.length-3);
16         a.unshift(nn);
17         n = n.substr(0,n.length-3);
18     }
19     if(n.length > 0) { a.unshift(n); }
20     n = a.join(delimiter);
21     if(d.length < 1) { amount = n; }
22     else { amount = n + '.' + d; }
23     amount = minus + amount;
24     return amount;
25 }
26    
27 /**
28 *   Usage:  CommaFormatted(12345678);
29 *   result: 12,345,678
30 **/
代碼2:
01 function addCommas(nStr) {
02     nStr += '';
03     var x = nStr.split('.');
04     var x1 = x[0];
05     var x2 = x.length >; 1 ? '.' + x[1] : '';
06     var rgx = /(d+)(d{3})/;
07        
08     while (rgx.test(x1)) {
09         x1 = x1.replace(rgx, '$1' + ',' + '$2');
10     }
11        
12     return x1 + x2;
13 }
14    
15 /**
16 *   Usage:  addCommas(12345678);
17 *   result: 12,345,678
18 **/

數(shù)字格式化,來自PHP

這段javascript代碼功能設計來自PHP的nubmer_format功能。能夠四舍五入并且加入逗號分隔。而且可以自定義10進制分隔。

01 function number_format (number, decimals, dec_point, thousands_sep) {
02    
03     number = (number + '').replace(/[^0-9+-Ee.]/g, '');
04     var n = !isFinite(+number) ? 0 : +number,
05         prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
06         sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
07         dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
08         s = '',
09         toFixedFix = function (n, prec) {
10             var k = Math.pow(10, prec);
11             return '' + Math.round(n * k) / k;
12         };
13     // Fix for IE parseFloat(0.55).toFixed(0) = 0;
14     s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
15     if (s[0].length > 3) {
16         s[0] = s[0].replace(/B(?=(?:d{3})+(?!d))/g, sep);
17     }
18     if ((s[1] || '').length < prec) {
19         s[1] = s[1] || '';
20         s[1] += new Array(prec - s[1].length + 1).join('0');
21     }
22     return s.join(dec);
23 }
24    
25 /**
26 *   Usage:  number_format(123456.789, 2, '.', ',');
27 *   result: 123,456.79
28 **/

添加一個英文的排序后綴
01 Number.prototype.toOrdinal = function() {
02     var n = this % 100;
03     var suffix = ['th', 'st', 'nd', 'rd', 'th'];
04     var ord = n < 21 ? (n < 4 ? suffix[n] : suffix[0]) : (n % 10 > 4 ? suffix[0] : suffix[n % 10]);
05     return this + ord;
06 }
07    
08 /*
09 *   Usage:
10 *   var myNumOld = 23
11 *   var myNumNew = myNumOld.toOrdinal()
12 *   Result: 23rd
13 */

除去非數(shù)字的字符

01 function stripNonNumeric( str )
02 {
03   str += '';
04   var rgx = /^d|.|-$/;
05   var out = '';
06   for( var i = 0; i < str.length; i++ )
07   {
08     if( rgx.test( str.charAt(i) ) ){
09       if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) ||
10              ( str.charAt(i) == '-' && out.length != 0 ) ) ){
11         out += str.charAt(i);
12       }
13     }
14   }
15   return out;
16 }
17    
18 /*
19 *   Usage: stripNonNumeric('123et45dhs6.789');
20 *   Result: 123456.789
21 */ 
原文來自:分享5個javascript的數(shù)字格式化函數(shù)

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多