Мне показалось, что я написал фрагмент кода JavaScript, который обрабатывал некоторые значения с плавающей запятой. Что такое символ десятичной точки в JavaScript? Всегда ли это .
? Или это зависит от культуры? А как насчет .toFixed()
и .parseFloat()
? Если я обрабатываю пользовательский ввод, он, вероятно, будет включать в себя локальный символ разделителя десятичных разделителей.
В конечном счете, я хотел бы написать код, который поддерживает как десятичные точки в пользовательском вводе - специфичные для культуры, так и .
, но я не могу написать такой код, если не знаю, чего ожидает JavaScript.
Добавлено: ОК, Rubens Farias предлагает посмотреть аналогичный вопрос который имеет аккуратный принятый ответ:
function whatDecimalSeparator() {
var n = 1.1;
n = n.toLocaleString().substring(1, 2);
return n;
}
Хорошо, это позволяет мне получить десятичную точку локали. Шаг к решению, несомненно.
Теперь оставшаяся часть должна определить, что такое поведение .parseFloat()
. В нескольких ответах указывается, что для литералов с плавающей запятой действует только .
. Действует ли .parseFloat()
так же? Или может потребоваться локальный десятичный разделитель в каком-то браузере? Существуют ли разные методы для разбора чисел с плавающей запятой? Должен ли я разворачивать свой собственный, чтобы быть уверенным?