Make parseFloat convert variables with commas into numbers

匿名 (未验证) 提交于 2019-12-03 09:14:57

问题:

I'm trying to get parseFloat to convert a userInput (prompt) into a number.

For example:

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

When userInput = 5,000, parse_Float(userInput) returns 5.

However, if the user was inputting a value to change something else (ie: make a bank deposit or withdrawl) Then I to work properly, parse.Float(userInput) needs to return 5000, not 5. If anyone could tell me how to do this it would help me so much. Thanks in advance.

回答1:

Your answer is close, but not quite right.

replace doesn't change the original string; it creates a new one. So you need to create a variable to hold the new string, and call parseFloat on that.

Here's the fixed code:

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

I also renamed the function to parseFloatIgnoreCommas, which better describes what it does.



回答2:

This is the function I use to scrub my user inputted numbers from a form. It handles anything a user may put in with a number like $ or just accidentally hitting a key.

I copied the following out of an object:

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

To make it non-object just change the first line to cleanInput(){....



回答3:

I have put together info from the comments to form a basic answer:

The answer seems to simply be to set parse_float to run :

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

The complete code would look like this:

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

returns: 523000321312321



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!