Javascript没有任何内建的格式化函数,这里我们通过Google收集了5个javascript的数字格式化函数,希望对于大家的web开发能够带来方便。
十进制四舍五入
这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用:
代码1:
view sourceprint?
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:
view sourceprint?
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 **/
添加逗号
这俩段代码帮助你添加逗号到每三位数字中,这让大的数字比较容易查看。
view sourceprint?
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:
view sourceprint?
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 **/
数字格式化,来自PHP
这段javascript代码功能设计来自PHP的nubmer_format功能。能够四舍五入并且加入逗号分隔。而且可以自定义10进制分隔。
view sourceprint?
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 **/
添加一个英文的排序后缀
view sourceprint?
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 */
除去非数字的字符
view sourceprint?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的数字格式化函数
最新推荐文章于 2025-02-09 16:38:50 发布