有时候输资金数据的时候如果位数较多就不好读了,如果输完能转换一下格式,转成用“,”隔开的通用格式就比较好看了。自己写了一个备用,以后用到的话就不用再写了。
1 //将数字转换为货币格式,用,隔开 2 function formatMoney(total) { 3 if (total.toString().indexOf(",") > 0) { 4 return total; 5 } 6 if (total.toString().indexOf(".") > 0) { 7 8 if (total.toString().substr((total.toString().indexOf(".") + 1)).length > 4) { 9 total = parseFloat(total).toFixed(4); 10 } 11 12 var pre = total.toString().substr(0, total.toString().indexOf(".")); 13 var behind = total.toString().substr((total.toString().indexOf("."))); 14 if (pre.length > 3) { 15 var m = Math.floor(pre.length / 3); 16 var n = pre.length % 3; 17 var ns = ""; 18 //位数是3的倍数 19 if (n == 0) { 20 for (var l = 0; l < m; l++) { 21 if (l < m - 1) { 22 ns += pre.substr(3 * l, 3) + ","; 23 } 24 else { 25 ns += pre.substr(3 * l, 3); 26 } 27 } 28 } 29 //位数不能被3整除 30 else { 31 ns = pre.substr(0, n) + ","; 32 for (var i = 0; i < m; i++) { 33 if (i < m - 1) { 34 ns += pre.substr(3 * i + n, 3) + ","; 35 } 36 else { 37 ns += pre.substr(3 * i + n, 3); 38 } 39 } 40 } 41 total = ns + behind; 42 43 } 44 } 45 else { 46 var newtotal = total.toString(); 47 if (newtotal.length > 3) { 48 var m = Math.floor(newtotal.length / 3); 49 var n = newtotal.length % 3; 50 var ns = ""; 51 //位数是3的倍数 52 if (n == 0) { 53 for (var l = 0; l < m; l++) { 54 if (l < m - 1) { 55 ns += newtotal.substr(3 * l, 3) + ","; 56 } 57 else { 58 ns += newtotal.substr(3 * l, 3); 59 } 60 } 61 } 62 //位数不能被3整除 63 else { 64 ns = newtotal.substr(0, n) + ","; 65 for (var i = 0; i < m; i++) { 66 if (i < m - 1) { 67 ns += newtotal.substr(3 * i + n, 3) + ","; 68 } 69 else { 70 ns += newtotal.substr(3 * i + n, 3); 71 } 72 } 73 } 74 total = ns; 75 } 76 } 77 return total; 78 }
分为整数和有小数位两种情况,小数位应该是不用“,”隔开的,需要将小数点前后分离。而整数的话就好说多了,可以直接操作。