Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使parseFloat将带有逗号的变量转换为数字_Javascript_Function_Parsefloat - Fatal编程技术网

Javascript 使parseFloat将带有逗号的变量转换为数字

Javascript 使parseFloat将带有逗号的变量转换为数字,javascript,function,parsefloat,Javascript,Function,Parsefloat,我试图让parseFloat将用户输入(提示符)转换为数字 例如: var userInput = prompt("A number","5,000") function parse_float(number) { return parseFloat(number) } 当userInput=5000时,parse_Float(userInput)返回5 但是,如果用户输入一个值以更改其他内容(即:进行银行存款或取款),则我需要正常工作,parse.Float(userInput)需

我试图让parseFloat将
用户输入
提示符
)转换为数字

例如:

var userInput = prompt("A number","5,000") 
function parse_float(number) {
    return parseFloat(number)
}
userInput=5000
时,
parse_Float(userInput)
返回
5

但是,如果用户输入一个值以更改其他内容(即:进行银行存款或取款),则我需要正常工作,
parse.Float(userInput)
需要返回
5000
,而不是
5

如果有人能告诉我怎么做,我会帮上大忙的。提前感谢。

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

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

返回:
52300032112321

我已将评论中的信息整合在一起,形成基本答案:

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

返回:
52300032112321

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

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

以下是固定代码:

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

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

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

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

以下是固定代码:

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

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

这是我用来从表单中删除用户输入的数字的函数。它可以处理用户输入的任何数字,比如$,或者只是不小心碰到了一个键

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

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

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

,这是我用来从表单中删除用户输入的数字的函数。它可以处理用户输入的任何数字,如$,或只是意外地按了键

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

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

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

,这听起来可能很愚蠢,但为什么不用简单的str.replace去掉逗号呢?就像@Bonatoc所说的-
parseInt(“5100.replace”(,“,”);
如果你的应用程序需要i18n,美分的小数点,请小心点)各国不同:
replace(/,/g,”)
:@wyattbergeron1是的,这是javascript它只替换了第一次出现的内容,下面是所有人的操作方法:
“567763321”。replace(/,/g,”);
这听起来可能很愚蠢,但为什么不用一个简单的str.replace去掉逗号呢?就像@Bonatoc说的那样-
parseInt(“5100”.replace(“,”,”);
不过要小心,如果你的应用程序需要i18n,那么每一个国家的美分(小数点)都不同:
replace(/,/g),”)
:@wyattbergeron1是的,它只会替换第一次出现的代码,下面是如何做到这一点:
“567763321”.replace(/,/g,”)
不起作用,它给了我js default的第一个实例。如果你找到修复方法,请编辑这个并/或告诉我。谢谢!哎哟,我不小心试图解析原始字符串而不是新字符串。代码现在应该可以工作了。不起作用,它给了我js default的第一个实例。如果你找到修复方法,ed它可以这样做和/或告诉我。谢谢!哎呀,我不小心试图解析原始字符串而不是新字符串。代码现在应该可以工作了。