24

I want to convert the string "15,678" into a value 15678. Methods parseInt() and parseFloat() are both returning 15 for "15,678." Is there an easy way to do this?

informatik01
  • 16,038
  • 10
  • 74
  • 104
David
  • 2,834
  • 6
  • 26
  • 31

5 Answers5

48

The simplest option is to remove all commas: parseInt(str.replace(/,/g, ''), 10)

SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
11

One way is to remove all the commas with:

strnum = strnum.replace(/\,/g, '');

and then pass that to parseInt:

var num = parseInt(strnum.replace(/\,/g, ''), 10);

But you need to be careful here. The use of commas as thousands separators is a cultural thing. In some areas, the number 1,234,567.89 would be written 1.234.567,89.

Blender
  • 289,723
  • 53
  • 439
  • 496
paxdiablo
  • 854,327
  • 234
  • 1,573
  • 1,953
8

If you only have numbers and commas:

+str.replace(',', '')

The + casts the string str into a number if it can. To make this as clear as possible, wrap it with parens:

(+str.replace(',', ''))

therefore, if you use it in a statement it is more separate visually (+ +x looks very similar to ++x):

var num = (+str1.replace(',', '')) + (+str1.replace(',', ''));

Javascript code conventions (See "Confusing Pluses and Minuses", second section from the bottom):

http://javascript.crockford.com/code.html

JustcallmeDrago
  • 1,885
  • 1
  • 13
  • 23
2

You can do it like this:

var value = parseInt("15,678".replace(",", ""));
treeface
  • 13,270
  • 4
  • 51
  • 57
  • your solution will replace only the first comma, not all of them so it will not work for numbers >= 1,000,000 – daniel.sedlacek Dec 20 '16 at 11:24
  • @daniel.sedlacek the question was "I want to convert the string "15,678" into a value 15678". My answer solves this problem. I'm being pedantic here, of course, but technically correct ;) – treeface Dec 22 '16 at 18:59
2

Use a regex to remove the commas before parsing, like this

parseInt(str.replace(/,/g,''), 10)
//or for decimals as well:
parseFloat(str.replace(/,/g,''))

You can test it here.

Nick Craver
  • 623,446
  • 136
  • 1,297
  • 1,155