自定义JavaScript数字格式化函数

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;

}

 

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;

}

 

2. 给数字添加逗号 

每三位数字添加一个逗号,方便阅读 

/** 每三位数字添加一个逗号,方便阅读 **/

 代码如下 复制代码

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

**/

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

**/

3. 类似PHP的 number_format 功能 

这个函数可以添加分隔逗号或者进行四舍五入。 

/** 这个函数可以添加分隔逗号或者进行四舍五入。 **/

 代码如下 复制代码

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

**/

4. 添加序数词 

给数字添加"st, nd, rd, th"等序数词。 

/** 给数字添加"st, nd, rd, th"等序数词。 **/

 代码如下 复制代码

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

*/

总结,四舍五入函数好像js自带了函数

貌似四舍五入用自带的toFixed就可以实现了。

 代码如下 复制代码

(2.83).toFixed(0) ==> 3
(2.6666).toFixed(2) ==> 2.67

时间: 2024-10-16 08:58:49

自定义JavaScript数字格式化函数的相关文章

分享几款javascript数字格式化函数

Javascript没有任何内建的格式化函数,这里我们通过Google收集了5个javascript的数字格式化函数,希望对于大家的web开发能够带来方便. 十进制四舍五入 这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用: 代码1:  代码如下 复制代码 function CurrencyFormatted(amount) {     var i = parseFloat(amount);     if(isNaN(i)) { i = 0.00; }     var minus =

JavaScript 数字格式化函数详解

Javascript提供了部分数字格式方法,但是提供的不是很完善,具体你可以看一下Number对象的使用,里面提供了对数字的一些格式化输出,几个函数如下: toExponential([fractionDigits])   :将数字按科学计数法格式返回,其中的fractionDigits值小数点后保留的位数. toFixed([fractionDigits])   :将数字按指定的小数点位数返回,其中的fractionDigits值小数点后保留的位数. toPrecision([precisio

全面兼容的javascript时间格式化函数(比较实用)_javascript技巧

全面兼容的javascript时间格式化函数,实用总结! 复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js日期格式化</title

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

十进制四舍五入 这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用: 代码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 / 10

Javascript日期格式化函数性能对比

  最近开发的软件中需要用到日志功能,其中有一个重要功能是显示日期和时间.于是网上搜了一把,搜到大量的日期格式化函数,不过比较了下,感觉代码都不够优雅,而且性能都不给力. 对线上一些代码进行了评测,结果如下: 测试代码如下,分别对格式化函数进行50万次计算: 代码如下   var start = new Date().getTime(); var date = new Date(); for(var i = 0;i<500000;i++){ date.format1('yyyy-MM-dd hh

javascript 数字格式化输出的实现代码_javascript技巧

复制代码 代码如下: <script type="text/javascript">var format = function (number, form) {    var forms = form.split('.'), number = '' + number, numbers = number.split('.')        , leftnumber = numbers[0].split('')        , exec = function (lastMat

javascript数字格式化通用类 accounting.js使用_javascript技巧

代码内容及下载地址 accounting.js代码如下: 复制代码 代码如下: /*! * accounting.js v0.3.2 * Copyright 2011, Joss Crowcroft * * Freely distributable under the MIT license. * Portions of accounting.js are inspired or borrowed from underscore.js * * Full details and documenta

JavaScript自定义日期格式化函数详细解析

 下面的一个例子就是以独立函数写出的JavaScript日期格式化函数,独立的format函数.回到格式化的这一知识点上,我们考查的是怎么实现的.运用了哪些原理 我们对 JavaScript 扩展其中一个较常的做法便是对 Date.prototype 的扩展.因为我们知道,Date 类只提供了若干获取日期元素的方法,如 getDate(),getMinute()--却没有一个转换为特定字符串的格式化方法.故所以,利用这些细微的方法,加以封装,组合我们想要的日期字符串形式.一般来说,该格式化函数可

JavaScript自定义日期格式化函数详细解析_javascript技巧

我们对 JavaScript 扩展其中一个较常的做法便是对 Date.prototype 的扩展.因为我们知道,Date 类只提供了若干获取日期元素的方法,如 getDate(),getMinute()--却没有一个转换为特定字符串的格式化方法.故所以,利用这些细微的方法,加以封装,组合我们想要的日期字符串形式.一般来说,该格式化函数可以定义在 Date 对象的原型身上,也可以独立一个方法写出.定义原型方法的操作如 Date.prototype.format = function(date){-