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 相关文章推荐
js实现遮罩层划出效果是生成div而不是显示
Jul 29 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
javascript常见数据验证插件大全
Aug 03 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
Oct 10 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
JS实现键值对遍历json数组功能示例
May 30 Javascript
Vue验证码60秒倒计时功能简单实例代码
Jun 22 Javascript
Vue路由钩子之afterEach beforeEach的区别详解
Jul 15 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
Aug 14 Javascript
Vue和React有哪些区别
Sep 12 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
Jan 27 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 在文件指定行插入数据的代码
2010/05/08 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
php等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
2014/06/24 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
python赋值操作方法分享
2013/03/23 Python
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
让 python 命令行也可以自动补全
2014/11/30 Python
Python 序列的方法总结
2016/10/18 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python绘制漏斗图步骤详解
2019/03/04 Python
python pyinstaller 加载ui路径方法
2019/06/10 Python
python 实现矩阵按对角线打印
2019/11/29 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
入党自我评价优缺点
2014/01/25 职场文书
教师节促销活动方案
2014/02/14 职场文书
合作意向书格式及范文
2014/03/31 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
vue中 this.$set的使用详解
2021/11/17 Vue.js
使用scrapy实现增量式爬取方式
2022/06/21 Python