Я хочу преобразовать строку "15,678" в значение 15678. Методы parseInt()
и parseFloat()
возвращают 15 для "15 678". Есть ли простой способ сделать это?
В JavaScript/jQuery каков наилучший способ преобразования числа с запятой в целое число?
Ответ 1
Самый простой вариант - удалить все запятые: parseInt(str.replace(/,/g, ''), 10)
Ответ 2
Один из способов - удалить все запятые с помощью:
strnum = strnum.replace(/\,/g, '');
а затем передать это parseInt:
var num = parseInt(strnum.replace(/\,/g, ''), 10);
Но вам нужно быть осторожным здесь. Использование запятых в качестве разделителей тысяч - это культурная вещь. В некоторых областях число 1,234,567.89
будет записано 1.234.567,89
.
Ответ 3
Если у вас есть только числа и запятые:
+str.replace(',', '')
+
строит строку str
в число, если это возможно. Чтобы сделать это как можно более ясным, оберните его с помощью parens:
(+str.replace(',', ''))
поэтому, если вы используете его в выражении, то он более визуально визуально (+ + x выглядит очень похоже на ++ x):
var num = (+str1.replace(',', '')) + (+str1.replace(',', ''));
Соглашения о JavaScript-кодах (см. "Сбивающие с толку плюсы и минусы", вторая часть снизу):
Ответ 4
Вы можете сделать это следующим образом:
var value = parseInt("15,678".replace(",", ""));
Ответ 5
Используйте регулярное выражение для удаления запятых перед разбором, например
parseInt(str.replace(/,/g,''), 10)
//or for decimals as well:
parseFloat(str.replace(/,/g,''))