使用逗号将parseFloat转换为数字

时间:2014-11-30 03:47:27

标签: javascript function parsefloat

我试图让parseFloat将userInputprompt)转换为数字。

例如:

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,而不是{{1 }}。 如果有人能告诉我如何做到这一点,那将对我有所帮助。提前谢谢。

3 个答案:

答案 0 :(得分:3)

你的答案很接近,但不是很正确。

replace不会更改原始字符串;它创造了一个新的。因此,您需要创建一个变量来保存新字符串,并在其上调用parseFloat

这里是固定代码:

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

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

答案 1 :(得分:1)

这是我用来从表单中擦除用户输入的数字的功能。它可以处理用户可能输入的任何内容,例如$或只是意外点击密钥。

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

    >>import selenium
    >>import expected_conditions as EC
     Trackback (most recent call last):
File "<stdin>", line 1, in <module>        
ImportError: No module named expected_conditions

要使其成为非对象,只需将第一行更改为cleanInput : function(userValue){ //clean the user input and scrub out non numerals var cleanValue = parseFloat(userValue.replace(/[^0-9\.]+/g,"")); return cleanValue; },

答案 2 :(得分:0)

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

答案似乎只是将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