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 相关文章推荐
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
Mar 21 Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 Javascript
jquery自定义显示消息数量
Dec 19 jQuery
Vue 中的compile操作方法
Feb 26 Javascript
vue实现PC端录音功能的实例代码
Jun 05 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
Dec 10 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 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
adodb与adodb_lite之比较
2006/12/31 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
js比较日期大小的方法
2015/05/12 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
django解决跨域请求的问题详解
2019/01/20 Python
我用Python抓取了7000 多本电子书案例详解
2019/03/25 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
Python中操作各种多媒体,视频、音频到图片的代码详解
2020/06/04 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
自考毕业自我鉴定范文
2013/10/27 职场文书
银行工作检查书范文
2014/01/31 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书