Home >Web Front-end >JS Tutorial >5 javascript number formatting functions to share_javascript skills

5 javascript number formatting functions to share_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:58:371147browse
Decimal rounding
These two pieces of code help you round, which is useful for displaying prices or orders:
Code 1:
Copy code The code is as follows:

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
**/

Code 2:
Copy code The code is as follows:

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
**/

Add comma
Both This snippet helps you add commas to every three digits, which makes large numbers easier to read.
Code 1:
Copy code The code is as follows:

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
**/

Code 2:
Copy code The code is as follows:

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
**/

Number formatting, from PHP
The functional design of this javascript code comes from the nubmer_format function of PHP. Can be rounded and separated by commas. And you can customize decimal separation.
Copy code The code is as follows:

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.prototype.toOrdinal = function() {
var n = this % 100;
var suffix = ['th', 'st', 'nd', 'rd', 'th'];
var ord = n < 21 ? (n < 4 ? suffix[n] : suffix[0]) : (n % 10 > 4 ? suffix[0] : suffix[n % 10]);
return this ord;
}
/*
* Usage:
* var myNumOld = 23
* var myNumNew = myNumOld.toOrdinal()
* Result: 23rd
*/

除去非数字的字符
复制代码 代码如下:

function stripNonNumeric( str )
{
str = '';
var rgx = /^d|.|-$/;
var out = '';
for( var i = 0; i < str.length; i )
{
if( rgx.test( str.charAt(i) ) ){
if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) ||
( str.charAt(i) == '-' && out.length != 0 ) ) ){
out = str.charAt(i);
}
}
}
return out;
}
/*
* Usage: stripNonNumeric('123et45dhs6.789');
* Result: 123456.789
*/
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn