Javascript將數值轉換為金額格式(分隔千分位和自動增加小數點)_javascript技巧

來源:互聯網
上載者:User

在項目裡碰到需要把類似'450000'的數字轉換為會計記賬所用的格式,'450,000.00',分隔千分位和小數點後不夠兩位元時自動補齊,已下記錄幾種實現的方式

ps:如果不考慮後面的小數點,最快捷的方法:

"12345678".replace(/[0-9]+?(?=(?:([0-9]{3}))+$)/g,function(a){return a+','}); //輸出 12 345 678

1.用迴圈的方式實現

function formatNum(str){ var newStr = ""; var count = 0; if(str.indexOf(".")==-1){  for(var i=str.length-1;i>=0;i--){   if(count % 3 == 0 && count != 0){    newStr = str.charAt(i) + "," + newStr;   }else{    newStr = str.charAt(i) + newStr;   }   count++;  }  str = newStr + ".00"; //自動補小數點後兩位  console.log(str) } else {  for(var i = str.indexOf(".")-1;i>=0;i--){   if(count % 3 == 0 && count != 0){    newStr = str.charAt(i) + "," + newStr; //碰到3的倍數則加上“,”號   }else{    newStr = str.charAt(i) + newStr; //逐個字元相接起來   }   count++;  }  str = newStr + (str + "00").substr((str + "00").indexOf("."),3);  console.log(str) }}formatNum('13213.24'); //輸出13,213.34formatNum('132134.2'); //輸出132,134.20formatNum('132134'); //輸出132,134.00formatNum('132134.236'); //輸出132,134.236

2.使用正則(比較不足的是還是得自己去判斷小數點後面的位元,有更智能的正則請通知我~)

function regexNum(str){ var regex = /(\d)(?=(\d\d\d)+(?!\d))/g; if(str.indexOf(".") == -1){  str= str.replace(regex,',') + '.00';  console.log(str) }else{  var newStr = str.split('.');  var str_2 = newStr[0].replace(regex,',');  if(newStr[1].length <= 1){    //小數點後只有一位時   str_2 = str_2 + '.' + newStr[1] +'0';   console.log(str_2)  }else if(newStr[1].length > 1){    //小數點後兩位以上時   var decimals = newStr[1].substr(0,2);   var srt_3 = str_2 + '.' + decimals;   console.log(srt_3)  } }};regexNum('23424224'); //輸出2,42,224.00 regexNum('23424224.2'); //輸出2,42,224.20regexNum('23424224.22'); //輸出2,42,224.22regexNum('23424224.233'); //輸出2,42,224.23 

以上就是本文的全部內容,瞭解更多JavaScript的文法,大家可以查看:《JavaScript 參考教程》、《JavaScript代碼風格指南》,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.