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 相关文章推荐
基于jQuery的弹出消息插件 DivAlert之旅(一)
Apr 01 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
运算符&amp;&amp;的三个不同层次
Apr 07 Javascript
基于JavaScript实现生成名片、链接等二维码
Sep 20 Javascript
js 定位到某个锚点的方法
Nov 19 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 Javascript
AJAX实现省市县三级联动效果
Oct 16 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
社区(php&amp;&amp;mysql)六
2006/10/09 PHP
PHP XML操作类DOMDocument
2009/12/16 PHP
php使用websocket示例详解
2014/03/12 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
鼠标选择动态改变网页背景颜色的JS代码
2013/12/10 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
浅谈Vue.js
2017/03/02 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Python正则表达式的使用范例详解
2014/08/08 Python
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
深入理解python中的atexit模块
2017/03/07 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python3 pandas 操作列表实例详解
2019/09/23 Python
澳大利亚在线性感内衣商店:Fantasy Lingerie
2021/02/07 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
汉语言文学毕业生求职信
2013/10/01 职场文书
大学校园生活自我鉴定
2014/01/13 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
单身申明具结书
2015/02/26 职场文书
销售督导岗位职责
2015/04/10 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
React 高阶组件HOC用法归纳
2021/06/13 Javascript
电脑无法安装Windows 11怎么办?无法安装Win11的解决方法
2021/11/21 数码科技