如何使用 jQuery 或 JavaScript 將貨幣字串轉換為雙精度浮點數?


如果您在 Web 應用程式中處理貨幣值,則必須將其從字串表示形式轉換為實際數值。在本文中,我們將討論如何使用 jQuery 和 JavaScript 來實現這一點。我們將瞭解可用於將字串轉換為雙精度浮點數的不同方法。

有兩種流行的方法可以將貨幣字串轉換為浮點數字符串,使用不同的JavaScript內建庫。讓我們檢視以下文章,以更深入地瞭解如何使用jQuery 或 JavaScript將貨幣字串轉換為雙精度浮點數。

這是一種簡單的方法,我們使用迴圈逐個匹配每個字元,如果任何字元被證明是整數或數字型別,

  • 我們使用substring()方法從原始字串中提取子字串。

  • 在移除子字串後,我們將使用parseFloat()方法將字串轉換為浮點數雙精度值。

  • 透過使用charCodeAt()函式獲取請求字元的 Unicode 值,我們可以確定該字元是否為數字型別。

substring() 方法 - JavaScript 內建函式string.substring()用於返回給定字串的一部分,該部分從起始索引到結束索引。索引從零開始。以下是string.substring()的語法。

string.substring(Startindex, Endindex)

parseFloat() 方法 - 一個名為parseFloat()的 JavaScript 內建函式用於獲取文字並將其轉換為浮點數。如果字串為空或其第一個字元不是數字值,則該函式返回 NaN(非數字)。實際上,它返回一個已解析的浮點數,直到遇到不是數字的字元為止。以下是 parseFloat() 的語法。

parseFloat(value)

charCodeAt() 方法 - str.charCodeAt() 函式返回字串中指定索引處存在的字元的 Unicode 字元集程式碼單元。以下是 str.charCode() 的語法。

str.charCodeAt(index)

示例

在下面的示例中,我們正在執行指令碼將貨幣字串轉換為雙精度浮點數。

<!DOCTYPE html>
<html>
<body>
   <h1>Converting Currency String To Double</h1>
   <script>
      function convert(currency){
         var k, temp;
         for(var i = 0; i < currency.length; i++){
            k = currency.charCodeAt(i);
            if(k > 47 && k < 58){
               temp = currency.substring(i);
               break;
            }
         }
         temp = temp.replace(/, /, '');
         return parseFloat(temp);
      }
      var string_currency = "$2245.45";
      document.write("Currency value: " + string_currency +"</br>");
      var doubleValue = convert(string_currency);
      document.write("Double value: " +doubleValue + "</br>");
   </script>
</body>
</html>

當指令碼執行時,它將生成一個輸出,其中包含指令碼中使用的貨幣字串值以及貨幣字串轉換為雙精度浮點數的值,顯示在網頁上。

replace() 方法

此方法將使用 JavaScript 的replace()方法替換所有字元(除了數字和小數點 (.) 外)為空格 ("")。然後可以使用parseFloat()方法將字串轉換為浮點數或雙精度浮點數。與substring()方法相比,此方法更有效。

語法

以下是 replace() 的語法。

str.replace(A, B)

JavaScript 函式string.replace()可用於將給定字串的一部分替換為另一個字串正則表示式。起始字串不會改變。

示例

考慮以下示例,我們使用replace()方法將貨幣字串轉換為雙精度浮點數。

<!DOCTYPE html>
<html>
<body>
   <h1>Converting Currency String To Double</h1>
   <script>
      function convert(currency){
         var temp = currency.replace(/[^0-9.-]+/g,"");
         return parseFloat(temp);
      }
      var string_currency = "$800,868.51";
      document.write("Currency value: " + string_currency +"</br>");
      var doubleValue = convert(string_currency);
      document.write("Converted to double: " + doubleValue +"</br>");
   </script>
</body>
</html>

執行上述指令碼後,Web 瀏覽器將顯示貨幣字串值以及該貨幣字串在 Web 瀏覽器中轉換為雙精度浮點數的值。

更新於: 2023年1月18日

3K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告