如何使用 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+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告