/*
*js格式化数字代码
*
*value: 要格式化的数字值
*scale: 最多保留几位小数
*zeroed: 是否保留尾0
*percented: 是否转称百分比形式
*
*/
function formatNumber(value, scale, zeroed, percented){
if (value == null)
return percented ? '0%' : 0;
var mr = (''+value).match(/^\d+\.?\d*$/);
if (!mr)
return percented ? '0%' : 0;
mr = (percented ? (value = Number(mr[0]) * 100)+'' : mr[0]).split('.');console.info(mr);
if (mr.length == 1)
return (zeroed ? (mr[0] + ((function(){var r = '.';for (var i = 0; i < scale; i++) {
r += '0';
}return r;}()))) : mr[0]) + (percented ? '%' : '');
var mr_l = mr[0], mr_r = mr[1];
if (mr_r.length == scale)
return (zeroed ? (mr_l + '.' + mr_r) : (value + '').replace(/\.*0+$/, '')) + (percented ? '%' : '');
else if (mr_r.length < scale)
return (zeroed ? value + ((function(){var r = ''; for (var i = 0; i < scale - mr_r.length; i++) {
r += '0';
}return r;})()) : (value + '').replace(/\.*0+$/, '')) + (percented ? '%' : '');
else {
var _s = mr_r.substr(0, scale + 1);
_s = _s.charAt(scale) > 4 ? (Number(_s.substring(0, scale)) + 1) + '' : _s.substring(0, scale);
if (_s.length == (scale + 1)){
mr_l = (Number(mr_l) + Number(_s.charAt(0))) + '';
_s = _s.substring(1);
}
return (zeroed ? (mr_l + '.' + _s) : (mr_l + (_s.match(/^0*$/) ? '' : ('.' + _s.replace(/0+$/, '')))))
+ (percented ? '%' : '');
}
};

/*
*js数字千分位格式化代码
*
*value: 要格式化的数字值
*seperator: 千分位符号
*digitNum: 保留几位小数
*/

function formatNumber2(value, seperator, digitNum){

var initV = value;
if((value = ((value = value + "").replace(/^\s*|\s*$|,*/g, ''))).match(/^\d*\.?\d*$/) == null)
return initV;
value = digitNum >= 0 ? (Number(value).toFixed(digitNum) + "") : value;
var r = [], tl = value.split(".")[0], tr = value.split(".")[1];
tr = typeof tr != "undefined" ? tr : "";
if (seperator != null && seperator != "") {
while(tl.length >= 3) {
r.push(tl.substring(tl.length - 3));
tl = tl.substring(0, tl.length - 3);
}
if (tl.length > 0)
r.push(tl);
r.reverse();
r = r.join(seperator);
return tr == "" ? r : r + "." + tr;
}
return value;
};

好用的JS数字格式化的更多相关文章

  1. js数字格式化-四舍五入精简版

    搜索网上的,数字格式化过余复杂,自己想了个简单方法,欢迎吐槽. 简化说明: '123333' => 12.3万 parseInt('123333') 字符串转整型 parseInt('12333 ...

  2. js数字格式化(截断格式化或四舍五入格式化)

    /*** * 数字格式化(适合金融产品截断小数位后展示) * @param num * @param pattern (标准格式:#,###.## 或#.## 或#,###00.00) * @para ...

  3. JS数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)

    最近做项目需要我们前端对金额进行千分位格式化(也就是说每三位用逗号隔开),代码已经做了修改  之前的版本是本人疏忽 真对不住大家了!现在已经做了修改 如果还有不完善的地方 请大家多多指教! 1. 支持 ...

  4. js 数字格式化,只能输入正负整数,小数

    1.只能输入正整数 <input name="columnValue" class="input96 required" type="text& ...

  5. js数字格式化(加千分位逗号)

    需求:当金额大于10000时,在作展示的时候,需要加千分位逗号,就是每隔1000要用逗号分隔: 方法一:使用toLocaleString()方法 此方法和toString()方法的区别看这里 < ...

  6. js数字格式化千分位格式

    带小数点的 var a = 8462948.2453; console.log(a.toLocaleString()) //8,462,948.245 不带小数点的 num.toString().re ...

  7. js 金融数字格式化

    js 金融数字格式化 finance money number format 数字格式化 regex `123456789`.replace(/\B(?=(\d{3})+(?!\d))/g, ',') ...

  8. 数字格式化的 js 库

    数字格式化的 js 库 Numeral.js,是一个用于格式化数字和处理数字的 js 库. Tip:目前 Star 有 9.2k,5年以前就没有在更新.其文档写得不很清晰,比如它提供了多语言,但如何切 ...

  9. js 数字添加逗号,格式化数字

    function addCommas(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + ...

随机推荐

  1. leetCode(49):Count Primes

    Description: Count the number of prime numbers less than a non-negative number, n. 推断一个数是否是质数主要有下面几种 ...

  2. easyUI中的layout

    Layout 通过$.fn.layout.defaults能够重写Layout. layout是一个具有五个区域的容器.仅仅有中间区域面板是必须的,其余的都是边界面板.每个边界面板都能够通过拖动它的边 ...

  3. oc const 关键字 对指针的理解

    /* int const *p; *p是常量, p是变量 const int *p; *p是常量, p是变量 int * const p; *p是变量, p是常量 const int * const ...

  4. adb protocol failure【转】

    本文转载自:http://blog.csdn.net/hang2/article/details/45080769 今天遇见一个现象 在Nexus4上面部分adb功能失效, 可以 adb push 到 ...

  5. .NET下WebBrowser的一个BUG以及其替代品——geckofx

    今天研究一个小问题,在C#的WebBrowser下打开奇艺网的视频,经常整个FLASH就偏了,进度条控制条什么的都没有. 要全屏一下然后还原才能解决这个问题. 如下,图1为webbrowser打开,图 ...

  6. CF19 E Fairy——树上差分

    题目:http://codeforces.com/contest/19/problem/E 先把图连成一棵树,然后对于每条非树边,判断它是在奇环中还是偶环中: 把环上的点打上相应的差分标记,并记录有多 ...

  7. RDA 升级

    烧录BOOT升级方式: 1.连接 2.烧录BOOT 1)升级“bootrom_raw.bin” 99K,这种升级方式需要Tera Term 工具,按“F5”  U盘升级. 编译的升级文件“RR8503 ...

  8. CentOS7 iso封装语句

    mkisofs -o /srv/neutron-controller.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot - ...

  9. esp和ebp指针

    gdb调试的时候会出现esp和ebp这两个指针,而这两个指针为我们查看栈的情况提供了方便. 简单点说,esp指向栈顶,而ebp指向栈底.例如一段程序: #include <stdio.h> ...

  10. codevs3370 选学霸(背包dp,并查集)

    3372 选学霸  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description 老师想从N名学生中选M人当学霸,但有K对人实力相 ...