Как взять входное значение, отобразить его в валютном стиле (1 000 000), но преобразовать его обратно в целое число для расчетов?

Я делаю базовое приложение для расчета налогов, используя Javascript. Я хочу ввести число во ввод, а затем отобразить его во вводе с запятыми, например, ввод 100000, отображение 100 000. Затем мне нужно использовать это значение для вычислений, поэтому его нужно преобразовать обратно в целое число.

У меня есть первая часть для преобразования, но я не уверен, что это лучший способ конвертировать обратно, чтобы фактически использовать его в расчетах.

let updateNumber = function (inputValue) {
  let newValue = Intl.NumberFormat().format(this.value);

  income.value = newValue;
};

income.addEventListener("change", updateNumber);

Надеюсь, это имеет смысл. Это мой первый пост.


person bradmeyn    schedule 29.07.2020    source источник
comment
Отвечает ли это на ваш вопрос? Как я могу разобрать строка с разделителем тысяч запятой в число?   -  person Heretic Monkey    schedule 30.07.2020
comment
@ScottMarcus Это возвращает 100 для '100,000'...   -  person Heretic Monkey    schedule 30.07.2020
comment
Почему вы не работаете с this.value?   -  person Unmitigated    schedule 30.07.2020
comment
Отвечает ли это на ваш вопрос? Есть ли способ изменить форматирование Intl.NumberFormat в JavaScript   -  person James    schedule 30.07.2020
comment
Это интересный вопрос, но почему бы просто не запомнить старое значение вместо того, чтобы пытаться реконструировать новое?   -  person GirkovArpa    schedule 30.07.2020


Ответы (1)


Вы можете использовать унарный оператор плюс, чтобы преобразовать входное значение в число перед его заменой.

Пример:

let updateNumber = function (inputValue) {
  let newValue = Intl.NumberFormat().format(this.value);
  let num = +this.value;
  income.value = newValue;
  console.log(num * 2);
};

document.querySelector('#income').addEventListener("change", updateNumber);
<input id="income">

person Unmitigated    schedule 29.07.2020