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     }

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

你可能感兴趣的:(js)