·您当前的位置:首页 > 技术教程 > JavaScript >

[JS]用循环的方式实现金额格式自动增加小数点

时间:2015-01-14 17:08酷播
[JS]用循环的方式实现金额格式自动增加小数点

[JS]用循环的方式实现金额格式自动增加小数点

  1. function formatNum(str){ 
  2.         var newStr = ""
  3.         var count = 0
  4.  
  5.         if(str.indexOf(".")==-1){ 
  6.             for(var i=str.length-1;i>=0;i--){ 
  7.                 if(count % 3 == 0 && count != 0){ 
  8.                     newStr = str.charAt(i) + "," + newStr; 
  9.                 }else{ 
  10.                     newStr = str.charAt(i) + newStr; 
  11.                 } 
  12.                 count++; 
  13.             } 
  14.             str = newStr + ".00"; //自动补小数点后两位 
  15.             console.log(str) 
  16.         } 
  17.         else 
  18.         { 
  19.             for(var i = str.indexOf(".")-1;i>=0;i--){ 
  20.                 if(count % 3 == 0 && count != 0){ 
  21.                     newStr = str.charAt(i) + "," + newStr;  //碰到3的倍数则加上“,”号 
  22.                 }else{ 
  23.                     newStr = str.charAt(i) + newStr; //逐个字符相接起来 
  24.                 } 
  25.                 count++; 
  26.             } 
  27.             str = newStr + (str + "00").substr((str + "00").indexOf("."),3); 
  28.             console.log(str) 
  29.         } 
  30.     } 
  31.  
  32.     formatNum('13213.24');  //输出13,213.34 
  33.     formatNum('132134.2');    //输出132,134.20 
  34.     formatNum('132134');    //输出132,134.00 
  35.     formatNum('132134.236');    //输出132,134.236 

 使用正则(比较不足的是还是得自己去判断小数点后面的位数,有更智能的正则请通知我~)

  1. function regexNum(str){ 
  2.     var regex = /(\d)(?=(\d\d\d)+(?!\d))/g; 
  3.  
  4.     if(str.indexOf(".") == -1){ 
  5.  
  6.         strstr= str.replace(regex,',') + '.00'; 
  7.         console.log(str) 
  8.  
  9.     }else{ 
  10.         var newStr = str.split('.'); 
  11.         var str_2 = newStr[0].replace(regex,','); 
  12.  
  13.         if(newStr[1].length <= 1){  
  14.             //小数点后只有一位时 
  15.             str_2str_2 = str_2 + '.' + newStr[1] +'0'; 
  16.             console.log(str_2) 
  17.  
  18.         }else if(newStr[1].length > 1){  
  19.             //小数点后两位以上时 
  20.             var decimals = newStr[1].substr(0,2); 
  21.             var srt_3 = str_2 + '.' + decimals; 
  22.             console.log(srt_3) 
  23.         } 
  24.     } 
  25. }; 
  26. regexNum('23424224'); //输出2,42,224.00  
  27. regexNum('23424224.2'); //输出2,42,224.20 
  28. regexNum('23424224.22'); //输出2,42,224.22 
  29. regexNum('23424224.233'); //输出2,42,224.23 

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器