Я пытаюсь разобрать два значения из таблицы данных. Поля являются числовыми, и когда они имеют запятую (например, 554,20), я не могу получить числа после запятой. Я пробовал parseInt
и parseFloat
. Как я могу это сделать?
javascript
parsing
floating-point
Камил Келчевски
источник
источник
Ответы:
Если они предназначены для отдельных значений, попробуйте это:
Если они предназначены для одного значения (как на французском языке, где половина написана 0,5)
источник
+(string)
вместо того,parseString(string)
что предложено @Stev ниже. Итак, первый пример будетv1 = +(values[0]); v2 = +(values[1]);
.6.000.000
. Функция заменить только заменить первый разделитель запятойВы когда-нибудь пытались это сделать? :п
+ (строка) приведёт строку к плавающей точке.
Handy!
Таким образом, чтобы решить вашу проблему, вы можете сделать что-то вроде этого:
источник
+(str)
решение -parseFloat
игнорирует недопустимые символы после числа,+(str)
возвращаетNaN
в тех случаях, что именно то, что мне нужно.Замените запятую точкой.
Это вернет только 554:
Это вернет 554.20:
Таким образом, в конце вы можете просто использовать:
Не забывайте, что
parseInt()
следует использовать только для анализа целых чисел (без плавающих точек). В вашем случае он вернет только 554. Кроме того, вызов parseInt () для числа с плавающей точкой не будет округлять число: он займет свое слово (ближайшее нижнее целое число).Расширенный пример, чтобы ответить на вопрос Педро Феррейры из комментариев:
Если текстовое поле содержит тысячи разделительных точек, как в
1.234.567,99
тех, которые могут быть удалены заранее с другойreplace
:источник
Если вы расширяете объект String, как это ..
.. вы можете запустить это так
также работает с точкой
источник
@GusDeCool или кто - то другой пытается заменить более чем один разделители тысяч, один из способов сделать это является регулярное выражение глобальной замены:
/foo/g
. Просто помните, что.
это метасимвол, поэтому вы должны избежать его или заключить в скобки (\.
или[.]
). Вот один из вариантов:источник
Вы можете использовать эту функцию. Он заменит запятые на '', а затем проанализирует значение и после этого снова изменит запятые в значении.
источник
У меня была та же проблема, за исключением того, что я заранее не знал, что такое разделители тысяч и десятичный разделитель. Я закончил тем, что написал библиотеку, чтобы сделать это. Если вам это интересно, вот оно: https://github.com/GuillaumeLeclerc/number-parsing
источник
Пытаться
источник