1

我试图让 parseFloat 将userInput( prompt) 转换为数字。

例如:

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

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

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

4

3 回答 3

5

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

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

这是固定代码:

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

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

于 2014-11-30T04:29:31.140 回答
2

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

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

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

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

于 2015-07-23T17:46:34.090 回答
0

我将评论中的信息汇总在一起,形成了一个基本答案:

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

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

于 2014-11-30T04:20:51.643 回答