|
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; } |
05 |
if(i < 0) { minus = '-'; } |
07 |
i = parseInt((i + .005) * 100); |
10 |
if(s.indexOf('.') < 0) { s += '.00'; } |
11 |
if(s.indexOf('.') == (s.length - 2)) { s += '0'; } |
17 |
* Usage: CurrencyFormatted(12345.678); |
代碼2:
01 |
function format_number(pnumber,decimals){ |
02 |
if (isNaN(pnumber)) { return 0}; |
03 |
if (pnumber=='') { return 0}; |
05 |
var snum = new String(pnumber); |
06 |
var sec = snum.split('.'); |
07 |
var whole = parseFloat(sec[0]); |
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('.'); |
17 |
dot = dec.indexOf('.'); |
19 |
while(dec.length <= dot + decimals) { dec += '0'; } |
23 |
var dec = new String(whole); |
25 |
dot = dec.indexOf('.'); |
26 |
while(dec.length <= dot + decimals) { dec += '0'; } |
33 |
* Usage: format_number(12345.678, 2); |
添加逗號
這倆段代碼幫助你添加逗號到每三位數(shù)字中,這讓大的數(shù)字比較容易查看。
01 |
function CommaFormatted(amount) { |
02 |
var delimiter = ","; // replace comma if desired |
03 |
amount = new String(amount); |
04 |
var a = amount.split('.',2) |
06 |
var i = parseInt(a[0]); |
07 |
if(isNaN(i)) { return ''; } |
09 |
if(i < 0) { minus = '-'; } |
11 |
var n = new String(i); |
15 |
var nn = n.substr(n.length-3); |
17 |
n = n.substr(0,n.length-3); |
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; |
28 |
* Usage: CommaFormatted(12345678); |
代碼2:
01 |
function addCommas(nStr) { |
03 |
var x = nStr.split('.'); |
05 |
var x2 = x.length >; 1 ? '.' + x[1] : ''; |
06 |
var rgx = /(d+)(d{3})/; |
08 |
while (rgx.test(x1)) { |
09 |
x1 = x1.replace(rgx, '$1' + ',' + '$2'); |
16 |
* Usage: addCommas(12345678); |
數(shù)字格式化,來自PHP
這段javascript代碼功能設計來自PHP的nubmer_format功能。能夠四舍五入并且加入逗號分隔。而且可以自定義10進制分隔。
01 |
function number_format (number, decimals, dec_point, thousands_sep) { |
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, |
09 |
toFixedFix = function (n, prec) { |
10 |
var k = Math.pow(10, prec); |
11 |
return '' + Math.round(n * k) / k; |
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); |
18 |
if ((s[1] || '').length < prec) { |
20 |
s[1] += new Array(prec - s[1].length + 1).join('0'); |
26 |
* Usage: number_format(123456.789, 2, '.', ','); |
添加一個英文的排序后綴
01 |
Number.prototype.toOrdinal = function() { |
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]); |
11 |
* var myNumNew = myNumOld.toOrdinal() |
除去非數(shù)字的字符
01 |
function stripNonNumeric( str ) |
06 |
for( var i = 0; i < str.length; i++ ) |
08 |
if( rgx.test( str.charAt(i) ) ){ |
09 |
if( !( ( str.charAt(i) == '.' && out.indexOf( '.' ) != -1 ) || |
10 |
( str.charAt(i) == '-' && out.length != 0 ) ) ){ |
19 |
* Usage: stripNonNumeric('123et45dhs6.789'); |
原文來自:分享5個javascript的數(shù)字格式化函數(shù)
|