js转换数据格式为货币格式

有时候输资金数据的时候如果位数较多就不好读了,如果输完能转换一下格式,转成用“,”隔开的通用格式就比较好看了。自己写了一个备用,以后用到的话就不用再写了。

 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     }

分为整数和有小数位两种情况,小数位应该是不用“,”隔开的,需要将小数点前后分离。而整数的话就好说多了,可以直接操作。

转载于:https://www.cnblogs.com/daner1257/p/3453684.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值