【问题标题】:Make parseFloat convert variables with commas into numbers使 parseFloat 将带逗号的变量转换为数字
【发布时间】:2023-03-11 07:17:02
【问题描述】:

我正在尝试让 parseFloat 将 userInput (prompt) 转换为数字。

例如:

var userInput = prompt("A number","5,000") 
function parse_float(number) {
    return parseFloat(number)
}

当userInput = 5,000,parse_Float(userInput) 返回5。

但是,如果用户正在输入一个值来更改其他内容(即:进行银行存款或取款),那么我要正常工作,parse.Float(userInput) 需要返回5000,而不是5。 如果有人能告诉我如何做到这一点,那将对我帮助很大。提前致谢。

【问题讨论】:

标签: javascript function parsefloat


【解决方案1】:

你的答案很接近,但并不完全正确。

replace 不会改变原始字符串;它创建了一个新的。所以你需要创建一个变量来保存新的字符串,然后调用parseFloat。

这里是固定代码:

function parseFloatIgnoreCommas(number) {
    var numberNoCommas = number.replace(/,/g, '');
    return parseFloat(numberNoCommas);
}

我还将函数重命名为parseFloatIgnoreCommas,这样可以更好地描述它的作用。

【讨论】:

  • 不起作用,它给了我 js 默认所做的,第一个实例。如果您找到解决此问题的方法,请编辑和/或告诉我。谢谢!
  • 哎呀,我不小心尝试解析原始字符串而不是新字符串。代码现在应该可以工作了。
【解决方案2】:

这是我用来从表单中清除用户输入数字的功能。它可以处理用户可能输入的任何内容,例如 $ 或只是不小心按了一个键。

我从一个对象中复制了以下内容:

cleanInput : function(userValue){
    //clean the user input and scrub out non numerals
    var cleanValue = parseFloat(userValue.replace(/[^0-9\.]+/g,""));    
    return cleanValue;
},

要使其成为非对象,只需将第一行更改为 cleanInput(){....

【讨论】:

    【解决方案3】:

    我将来自 cmets 的信息汇总起来形成一个基本答案:

    答案似乎只是将 parse_float 设置为运行:

    number.replace(/,/g, "")
    return parseFloat(number)
    

    完整的代码如下所示:

    var userInput = prompt("A number","523,000,321,312,321") 
    function parse_float(number) {
        number.replace(/,/g, "")
    return parseFloat(number)
    }
    

    返回:523000321312321

    【讨论】:

      猜你喜欢
      • 2023-02-21
      • 2023-01-25
      • 2022-06-15
      • 2017-11-07
      • 2012-10-27
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      相关资源
      最近更新 更多