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