<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          JS--普通數字格式與會計金額格式之間的轉換

          2019-10-24    seo達人

          普通數字轉會計金額格式(保留兩位小數)

          我們可以用數字的toLocaleString()方法將普通數字轉為會計金額格式,但是這種方式無法保留兩位小數(四舍五入),如果是整數或者小數長度只有一位的時候無法自動補0



          例如:





          思路:

          利用toLocaleString()以及toFixed()先對數字進行一個轉換得到最多保留了2位小數的金額,然后判斷數字是為整數還是帶有小數,如果帶有小數則進行切割,判斷小數長度為1時自動補0



          // 普通數字轉會計金額格式 第一種

              function toThousandsFormates(num) {

                  // 判斷傳進來的數字是否為非空數字

                 if (!isNaN(parseFloat(num))) {

                      var reg = /./g

                      var newNum = Number(Number(num).toFixed(2)).toLocaleString()

                      // 判斷轉換后的數字是否帶有小數

                      if (reg.test(newNum)) {

                          var numArr = newNum.split('.')

                          // 判斷小數點后數字長度為1,則自動補0

                          numArr[1] = numArr[1].length === 1 ? numArr[1] + '0' : numArr[1]

                          return numArr.join('.')

                      } else {

                          // 整數直接在后面補上0.00

                          return newNum + '.00'

                      }



                  } else {

                      return ''

                  }

              }

              console.log(toThousandsFormates('0')); // 0.00

              console.log(toThousandsFormates('')); // ''

              console.log(toThousandsFormates(966)); // 966.00

              console.log(toThousandsFormates(966.3)); // 966.30

              console.log(toThousandsFormates(9669228.55)); // 9,669,228.55

              console.log(toThousandsFormates(96566.56954)); // 96,566.57



          經過查閱資料后,發現toLocaleString()它里面自帶屬性可以檢查到最少保留了幾位小數,不夠自動補0,這樣我們上面的代碼其實可以更加簡單,如下:

          // 普通數字轉會計金額格式 第二種

          function toThousandsFormates2(num) {

              // 判斷傳進來的數字是否為非空數字

              if (!isNaN(parseFloat(num))) {

                  var newNum = Number(Number(num).toFixed(2)).toLocaleString('zh', { minimumFractionDigits: 2 })

                  return newNum



              } else {

                  return ''

              }

          }



          console.log(toThousandsFormates2('0')); // 0.00

          console.log(toThousandsFormates2('')); // ''

          console.log(toThousandsFormates2(966)); // 966.00

          console.log(toThousandsFormates2(966.3)); // 966.30

          console.log(toThousandsFormates2(9669228.55)); // 9,669,228.55

          console.log(toThousandsFormates2(96566.56954)); // 96,566.57



          // 結果一模一樣



          會計金額格式轉普通數字(利用正則)

          // 會計金額格式轉為普通數字

              function rMoney(num) {

                  return parseFloat(num.replace(/[^\d\.-]/g, ''))

              }

              console.log(rMoney('96,566.57')); // 96566.57

              console.log(rMoney('966.30')); // 966.3

              console.log(rMoney('9,669,228.55')); // 9669228.55

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計  cs界面設計 、 ipad界面設計 、 包裝設計  圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合