如何使用 jQuery 或 JavaScript 将货币字符串转换为双精度数?

javascriptweb developmentfront end technology

如果您在 Web 应用程序中使用货币值,则必须将它们从字符串表示转换为实际数值。在本文中,我们将讨论如何使用 jQuery 和 JavaScript 执行此操作。我们将研究将字符串转换为双精度数的不同方法。

有两种常用方法可以使用不同的 JavaScript 内置库将货币字符串转换为 浮点字符串。让我们阅读以下文章,以了解如何使用 jQuery 或 JavaScript 将货币字符串转换为双精度数。

这是一种简单的方法,我们使用循环一次匹配每个字符,如果任何字符被证明是整数或数字类型,

  • 我们使用 substring() 方法从原始字符串中提取子字符串。

  • 在删除 substring 后,我们将使用 parseFloat() 方法将 string 转换为浮点双精度值。

  • 通过使用 charCodeAt() 函数获取所请求字符的 Unicode 值,我们可以确定该字符是否为数字类型。

substring() 方法 − JavaScript 内置函数 string.substring() 用于返回给定 string 中从起始索引到结束索引的部分。索引从零开始。以下是 string.substring() 的语法。

string.substring(Startindex, Endindex)

parseFloat() 方法 − 内置 JavaScript 函数 parseFloat() 用于获取文本并将其转换为 浮点值。如果字符串为空或其第一个字符不是数值,则该函数返回 NaN(非数字)。直到遇到非数字字符时,它实际上都会返回解析后的浮点数。以下是 parseFloat() 的语法。

parseFloat(value)

charCodeAt() 方法str.charCodeAt() 函数返回 string 中指定索引处存在的字符的 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() 可用于将给定 string 的一部分替换为另一个 string正则表达式。起始 string 不会改变。

示例

考虑以下示例,我们使用 replace() 方法将货币 string 转换为双精度数。

<!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>

运行上述脚本后,网络浏览器会在网络浏览器上显示货币字符串值以及该货币字符串的转换值(以双精度形式显示)。


相关文章