Ответ 1
parseFloat
не использует ваше определение локали, а определение десятичного литерала.
Он анализирует только .
не ,
Я бразильский, и я должен заменить запятую точкой перед анализом десятичных чисел.
У меня вопрос о поведении JavaScript parseFloat в разных частях мира.
В США, если вы вызываете parseFloat на строку "123.34", вы получите номер с плавающей запятой 123.34.
Если я разрабатываю код в словах Швеции или Бразилии, и они используют запятую вместо периода в качестве разделителя десятичных чисел, функция parseFloat ожидает "123,34" или "123,34".
Обратите внимание, что я не спрашиваю, как разбирать другой формат номера культуры в США. Я спрашиваю, разве parseFloat в Швеции или в Бразилии ведет себя так же, как в США, или ожидает ли он номер в своем местном формате? Или лучше подумать об этом, должен ли разработчик в Бразилии/Швеции преобразовать строки в английский формат, прежде чем он сможет использовать parseFloat после извлечения текста из текстового поля?
Пожалуйста, дайте мне знать, если это не имеет смысла.
parseFloat
не использует ваше определение локали, а определение десятичного литерала.
Он анализирует только .
не ,
Я бразильский, и я должен заменить запятую точкой перед анализом десятичных чисел.
Нет, parseFloat
указано для разбора DecimalLiterals
, которые используют точку как десятичный разделитель. Он не зависит от текущих настроек локали среды.
Это не только Швеция/Бразилия. F.ex в США часто добавляют запятые в больших количествах, например $5,762,325.25
.
Функция parseFloat
по существу имеет дело с десятичными знаками, а не с языковыми строками.
В общем, JavaScript иногда может преобразовывать общие строки/числа/даты в формат, совместимый с языком, но не наоборот.