javascript把數字格式化轉換成貨幣類型

來源:互聯網
上載者:User

做財務的東西總是比較有挑戰的,效能,易用性,準確性都有很高要求,包括一些小的細節。
比如金額需要顯示的時候轉換成有千分位,小數點後保留2位等。去編輯的時候,又要格式化,把逗號都去掉。網上找了段代碼,但是再次編輯會有問題,修改了一下,代碼如下:

  1. function outputMoney(number) {
  2.  number=number.replace(//,/g,"");
  3.  if (isNaN(number)||number=="") return "";
  4.  number = Math.round(  number*100) /100;
  5. if(number<0)
  6. return '-'+outputDollars(Math.floor(Math.abs(number)-0) + '') + outputCents(Math.abs(number) - 0);
  7. else
  8. return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0);
  9. }
  10. function outputDollars(number)
  11. {
  12.   if (number.length<= 3)
  13.   return (number == '' ? '0' : number);
  14.   else
  15.   {
  16.     var mod = number.length%3;
  17.     var output = (mod == 0 ? '' : (number.substring(0,mod)));
  18.     for (i=0 ; i< Math.floor(number.length/3) ; i++)
  19.     {
  20.       if ((mod ==0) && (i ==0))
  21.       output+= number.substring(mod+3*i,mod+3*i+3);
  22.       else
  23.       output+= ',' + number.substring(mod+3*i,mod+3*i+3);
  24.     }
  25.     return (output);
  26.   }
  27. }
  28. function outputCents(amount)
  29. {
  30.   amount = Math.round( ( (amount) - Math.floor(amount) ) *100);
  31.   return (amount<10 ? '.0' + amount : '.' + amount);
  32. }

用法:

<input name="TRANS_AMOUNT" type="text" id="TRANS_AMOUNT" size="15" onblur="this.value=outputMoney(this.value);" />  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.