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


Posted in Javascript onDecember 07, 2011

十进制四舍五入
这两段代码帮助你做到四舍五入,对于你显示价格或者订单比较有用:
代码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; 
} 
/** 
* Usage: CurrencyFormatted(12345.678); 
* result: 12345.68 
**/

代码2:
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 
**/

添加逗号
这俩段代码帮助你添加逗号到每三位数字中,这让大的数字比较容易查看。
代码1:
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 
**/

代码2:
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 
**/

数字格式化,来自PHP
这段javascript代码功能设计来自PHP的nubmer_format功能。能够四舍五入并且加入逗号分隔。而且可以自定义10进制分隔。
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 
*/
Javascript 相关文章推荐
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
Nov 09 Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
Dec 31 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
vue实现点击按钮下载文件功能
Oct 11 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
Dec 07 #Javascript
autoPlay 基于jquery的图片自动播放效果
Dec 07 #Javascript
浅析Prototype的模板类 Template
Dec 07 #Javascript
js 幻灯片的实现
Dec 06 #Javascript
字符串的replace方法应用浅析
Dec 06 #Javascript
js滚动条回到顶部的代码
Dec 06 #Javascript
javascript检测浏览器flash版本的实现代码
Dec 06 #Javascript
You might like
PHP使用ob_start生成html页面的方法
2014/11/07 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
A标签触发onclick事件而不跳转的多种解决方法
2013/06/27 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
python实现电子词典
2020/04/23 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python正则表达式使用范例分享
2016/12/04 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Django values()和value_list()的使用
2020/03/31 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
美国批发零售网站:GearXS
2016/07/26 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
学生手册家长评语
2014/02/10 职场文书
公司中秋节活动方案
2014/02/12 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
共产党员公开承诺书
2014/03/25 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
小学运动会入场词
2015/07/18 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书