js jquery版本的 金额千分位转换函数(非正则,效率极高)
没想到js里面没有 金额千分位格式化的处理函数(例:1,234.01 这样的格式),网上搜了一圈,都是使用正则的方式处理的。正则的效率不敢恭维啊,又耗费资源速度又慢(虽然处理起来会直观一些)。
因此专门写了一个纯数值处理最后输出字符串个 金额千分位处理函数,并封装成jQuery函数包,处理时效率很高,可高频率的使用,直接上代码。还有min压缩版本可点击连接下载。
如果你不是jQuery环境,直接把源码拿出来,重新封装到自己的函数中能够就能用。
源码以及min包下载地址:jQuery.formatMoney.rar
- /**
- * 金额按千位逗号分割
- * @character_set UTF-8
- * @author Jerry.li(hzjerry@gmail.com)
- * @version 1.2014.08.24.2143
- * Example
- * <code>
- * alert($.formatMoney(1234.345, 2)); //=>1,234.35
- * alert($.formatMoney(-1234.345, 2)); //=>-1,234.35
- * alert($.unformatMoney(1,234.345)); //=>1234.35
- * alert($.unformatMoney(-1,234.345)); //=>-1234.35
- * </code>
- */
- ;(function($)
- {
- $.extend({
- /**
- * 数字千分位格式化
- * @public
- * @param mixed mVal 数值
- * @param int iAccuracy 小数位精度(默认为2)
- * @return string
- */
- formatMoney:function(mVal, iAccuracy){
- var fTmp = 0.00;//临时变量
- var iFra = 0;//小数部分
- var iInt = 0;//整数部分
- var aBuf = new Array(); //输出缓存
- var bPositive = true; //保存正负值标记(true:正数)
- /**
- * 输出定长字符串,不够补0
- * <li>闭包函数</li>
- * @param int iVal 值
- * @param int iLen 输出的长度
- */
- function funZero(iVal, iLen){
- var sTmp = iVal.toString();
- var sBuf = new Array();
- for(var i=0,iLoop=iLen-sTmp.length; i<iLoop; i++)
- sBuf.push('0');
- sBuf.push(sTmp);
- return sBuf.join('');
- };
- if (typeof(iAccuracy) === 'undefined')
- iAccuracy = 2;
- bPositive = (mVal >= 0);//取出正负号
- fTmp = (isNaN(fTmp = parseFloat(mVal))) ? 0 : Math.abs(fTmp);//强制转换为绝对值数浮点
- //所有内容用正数规则处理
- iInt = parseInt(fTmp); //分离整数部分
- iFra = parseInt((fTmp - iInt) * Math.pow(10,iAccuracy) + 0.5); //分离小数部分(四舍五入)
- do{
- aBuf.unshift(funZero(iInt % 1000, 3));
- }while((iInt = parseInt(iInt/1000)));
- aBuf[0] = parseInt(aBuf[0]).toString();//最高段区去掉前导0
- return ((bPositive)?'':'-') + aBuf.join(',') +'.'+ ((0 === iFra)?'00':funZero(iFra, iAccuracy));
- },
- /**
- * 将千分位格式的数字字符串转换为浮点数
- * @public
- * @param string sVal 数值字符串
- * @return float
- */
- unformatMoney:function(sVal){
- var fTmp = parseFloat(sVal.replace(/,/g, ''));
- return (isNaN(fTmp) ? 0 : fTmp);
- },
- });
- })(jQuery);
js jquery版本的 金额千分位转换函数(非正则,效率极高)的更多相关文章
- [js开源组件开发]数字或金额千分位格式化组件
数字或金额千分位格式化组件 这次距离上一个组件<[js开源组件开发]table表格组件>时隔了一个月,由于最近的项目比较坑,刚挖完坑,所以来总结性提出来几个组件弥补这次的空缺,首先是金额和 ...
- JS/Jquery版本的俄罗斯方块(附源码分析)
转载于http://blog.csdn.net/unionline/article/details/63250597 且后续更新于此 1.前言 写这个jQuery版本的小游戏的缘由在于我想通过从零到有 ...
- js千分位的函数
不错的js千分位函数,适用于将金额每3位用“,”分隔 /*for price using thousands separator */ function fprice(s,n){ s = parseF ...
- 前端(js/jquery) 日期和时间戳的转换
一.JavaScript中获取当前时间的时间戳 方法一: var timestamp=Date.parse(new Date()); ====>结果是:1451441086000 注:这种方式精 ...
- js数字格式化(加千分位逗号)
需求:当金额大于10000时,在作展示的时候,需要加千分位逗号,就是每隔1000要用逗号分隔: 方法一:使用toLocaleString()方法 此方法和toString()方法的区别看这里 < ...
- JS方法:数字转换为千分位字符
/** * 数字转为千分位字符 * @param {Number} num * @param {Number} point 保留几位小数,默认2位 */ function parseToThousan ...
- js千分位转换
var money = 1234567.55; var sMoney = money.toLocaleString(); console.info(sMoney); console.info(pars ...
- 【JS】toLocaleString 日期格式,千分位转换
https://blog.csdn.net/Seven521m/article/details/108866881 类似于c里printf(m%)的意思 可以指定整数最少位数,小数最少与最多位数,有效 ...
- JS返回一个数据的千分位格式
/** * 价钱转换-从右往左每3位数字加一个逗号 * @param price 需要转换的价格 */ formatPrice(price){ var newPrice = price.split(' ...
随机推荐
- CorelDRAW 文件实用工具 CDRTools 2
随着 CorelDRAW 更新脚步越来越频繁,版本之间兼容性问题越来越突出,特别是跨版本之间打开会有很多问题,比如:文字跑位.透镜变向.位图出错.颜色改变,甚至会造成文件损坏.最好的办法就是哪一个版本 ...
- PL/SQL Developer编码格式设置及中文乱码解决方案
1.PL/SQL Developer中文字段显示乱码 原因:因为数据库的编号格式和pl /sql developer的编码格式不统一造成的. 2.PL/SQL Developer编码格式设置详细的解决 ...
- oracle闪回表详解
--- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...
- 【BZOJ2199】 [Usaco2011 Jan]奶牛议会
Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会.议会以“每头牛 都可以获得自己想要的”为原则,建立了下面的投票系统: M只到场的奶牛 (1 & ...
- 判断webpart类型 How can I tell what type a web part is?
using(new SPSite("http://mysite/myweb").OpenWeb()){ //give relative path of the webpartpag ...
- vs中使用过的扩展和好的nuget库
扩展 ReAttach ReAttach gives you an easy way to ReAttaching your prior debug targets. ReAttach stores ...
- winform访问url传参有返回值
using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;usi ...
- Matlab中sortrows函数解析
一.问题来源 返回检索到的数据(按相关度排序)在原始数据中的索引. 二.问题解析 x = [1 4 3 5; 1 3 2 6]:sortrows(x)其结果是按照row来排列,默认首先排第一列,1和1 ...
- [转载]MongoDB设置访问权限、设置用户
MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于W ...
- [转载]easyui datagrid 时间格化(JS 日期时间本地化显示)
easyui datagrid 日期时间显示不正常,后台java 类型为 DATE 经过JSON工具一转化传到前台来就是这样,不便 于是想格式化一下, 格式化代码 如下: [javascript] v ...