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 相关文章推荐
javascript之更有效率的字符串替换
Aug 02 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
Jun 28 Javascript
过虑特殊字符输入的js代码
Aug 05 Javascript
JavaScript中使用构造函数实现继承的代码
Aug 12 Javascript
JS实现Enter键跳转及控件获得焦点
Aug 12 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
javascript数组详解
Oct 22 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
May 27 Javascript
使用RequireJS库加载JavaScript模块的实例教程
Jun 06 Javascript
新入门node.js必须要知道的概念(必看篇)
Aug 10 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
js实现String.Fomat的实例代码
Sep 02 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+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
Vue Element UI + OSS实现上传文件功能
2019/07/31 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
Python 关于反射和类的特殊成员方法
2017/09/14 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
实例讲解Python爬取网页数据
2018/07/08 Python
python3人脸识别的两种方法
2019/04/25 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Django之模板层的实现代码
2019/09/09 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
世界上最悠久的自行车制造商:Ribble Cycles
2017/03/18 全球购物
物业电工岗位职责
2013/11/20 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
2014年社区工作总结
2014/11/18 职场文书
文明单位创建材料
2014/12/24 职场文书
税务会计岗位职责
2015/04/02 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书