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