码迷,mamicode.com
首页 > 编程语言 > 详细

javascript中将整数添加千位符号

时间:2017-07-25 19:35:33      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:html   com   split   typeof   str   string   整数   ret   amp   

如果num是整数的话,将其转换成带千位符号的字符串:

Number(num).toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, ‘$1‘ +  ‘,‘);

另外,http://www.cnblogs.com/yeminglong/p/5301295.html 给出了小数的转换格式,如下:

 1 /**
 2 *
 3 * @param num
 4 * @param precision
 5 * @param separator
 6 * @returns {*}
 7 *=======================================================
 8 * formatNumber(10000)="10,000"
 9 * formatNumber(10000, 2)="10,000.00"
10 * formatNumber(10000.123456, 2)="10,000.12"
11 * formatNumber(10000.123456, 2, ‘ ‘)="10 000.12"
12 * formatNumber(.123456, 2, ‘ ‘)="0.12"
13 * formatNumber(56., 2, ‘ ‘)="56.00"
14 * formatNumber(56., 0, ‘ ‘)="56"
15 * formatNumber(‘56.‘)="56"
16 * formatNumber(‘56.a‘)=NaN
17 *=======================================================
18 */
19 function formatNumber(num, precision, separator) {
20   var parts;
21   // 判断是否为数字
22   if (!isNaN(parseFloat(num)) && isFinite(num)) {
23     // 把类似 .5, 5. 之类的数据转化成0.5, 5, 为数据精度处理做准, 至于为什么
24     // 不在判断中直接写 if (!isNaN(num = parseFloat(num)) && isFinite(num))
25     // 是因为parseFloat有一个奇怪的精度问题, 比如 parseFloat(12312312.1234567119)
26     // 的值变成了 12312312.123456713
27     num = Number(num);
28     // 处理小数点位数
29     num = (typeof precision !== ‘undefined‘ ? num.toFixed(precision) : num).toString();
30     // 分离数字的小数部分和整数部分
31     parts = num.split(‘.‘);
32     // 整数部分加[separator]分隔, 借用一个著名的正则表达式
33     parts[0] = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, ‘$1‘ + (separator || ‘,‘));
34 
35     return parts.join(‘.‘);
36   }
37   return NaN;
38 }

 

 1 /**
 2 * 把数字转换成货币的格式
 3 * @param decimals
 4 * @param dec_point
 5 * @param thousands_sep
 6 * @returns {string}
 7 */
 8 Number.prototype.format=function(decimals, dec_point, thousands_sep){
 9 var num = (this + ‘‘)
10 .replace(/[^0-9+\-Ee.]/g, ‘‘);
11 var n = !isFinite(+num) ? 0 : +num,
12 prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
13 sep = (typeof thousands_sep === ‘undefined‘) ? ‘,‘ : thousands_sep,
14 dec = (typeof dec_point === ‘undefined‘) ? ‘.‘ : dec_point,
15 s = ‘‘,
16 toFixedFix = function(n, prec) {
17 var k = Math.pow(10, prec);
18 return ‘‘ + (Math.round(n * k) / k)
19 .toFixed(prec);
20 };
21 // Fix for IE parseFloat(0.55).toFixed(0) = 0;
22 s = (prec ? toFixedFix(n, prec) : ‘‘ + Math.round(n))
23 .split(‘.‘);
24 if (s[0].length > 3) {
25 s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
26 }
27 if ((s[1] || ‘‘)
28 .length < prec) {
29 s[1] = s[1] || ‘‘;
30 s[1] += new Array(prec - s[1].length + 1)
31 .join(‘0‘);
32 }
33 return s.join(dec);
34 }

 

javascript中将整数添加千位符号

标签:html   com   split   typeof   str   string   整数   ret   amp   

原文地址:http://www.cnblogs.com/XHappyness/p/7235617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!