В JavaScript / jQuery, как лучше всего преобразовать число с запятой в целое число? - PullRequest
22 голосов
/ 03 ноября 2010

Я хочу преобразовать строку «15,678» в значение 15678. Методы parseInt() и parseFloat() возвращают 15 для «15,678».Есть ли простой способ сделать это?

Ответы [ 5 ]

38 голосов
/ 03 ноября 2010

Самый простой вариант - убрать все запятые: parseInt(str.replace(/,/g, ''), 10)

10 голосов
/ 03 ноября 2010

Один из способов - удалить все запятые с помощью:

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

и , затем передайте это в parseInt:

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

Но здесь нужно быть осторожным. Использование запятых в качестве разделителей тысяч - это культурная вещь. В некоторых областях число 1,234,567.89 будет написано 1.234.567,89.

8 голосов
/ 03 ноября 2010

Если у вас есть только цифры и запятые:

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

+ преобразует строку str в число, если это возможно.Чтобы сделать это как можно более ясным, заключите его в скобки:

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

, поэтому, если вы используете его в выражении, оно более визуально отделено (+ + x выглядит очень похоже на ++ x):

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

Условные обозначения кода JavaScript (см. «Запутанные плюсы и минусы», второй раздел снизу):

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

2 голосов
/ 03 ноября 2010

Вы можете сделать это так:

var value = parseInt("15,678".replace(",", ""));
1 голос
/ 03 ноября 2010

Используйте регулярное выражение для удаления запятых перед синтаксическим анализом, как это

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

Вы можете проверить это здесь .

...