Разделение значения поля ввода на предыдущий результат в JavaScript

#javascript

#javascript

Вопрос:

Есть 3 поля ввода для числа. Когда я помещаю число в 1-е и 2-е поля соответственно, оно вычисляется и возвращает result . Я хочу разделить это result на третий ввод value3 .

Упрощение:

поля ввода X, Y, Z

Q — результат вычисления X и Y

Я хочу Q / Z (нажав одну кнопку)

Пока это мой код:

     const cal = () => {
                const A = parseInt(value1.value.replace(/,/g, '')),
                    B = parseInt(value2.value.replace(/,/g, ''));
                // console.log(parseInt(A), parseInt(B));
                const res = A * 0.9 * parseFloat(100 / B);

                result.innerText = `you have ${new Intl.NumberFormat('de-DE', { style: 'currency', 
    currency: 'EUR' }).format(res)} dollar.`;
    };

  

Ответ №1:

Ваша формула может быть немного упрощена, и нет необходимости снова преобразовывать результат деления в float, поэтому вот моя версия этого:

 // "quick and dirty" method for defining a global variable for each input field ...
[...document.querySelectorAll("input")].forEach (e=>window[e.name]=e);

const calc=ev=>{
  if (ev amp;amp; ev.target.tagName!=="INPUT") return;
  const A = parseInt(value1.value.replace(/,/g, '')),
        B = parseInt(value2.value.replace(/,/g, ''));
  q.value =  A * 90. / B;
  result.value = `you have ${new Intl.NumberFormat('de-DE', { style: 'currency', 
currency: 'EUR' }).format(q.value / value3.value)} dollar.`
};

document.addEventListener("input",calc);
calc(); // initial calculation  
 <input type="text" name="value1" placeholder="value1" value="100"> intermediate result:<br>
<input type="text" name="value2" placeholder="value2" value="90">
<input type="text" name="q" readonly>
<br>
<input type="text" name="value3" placeholder="value3" value="1"><br>
final result = int(value1) * 90 / int(value2) / value3<br>
<input type="text" name="result" readonly>  

Комментарии:

1. Спасибо. но у меня есть отдельная кнопка. если я нажму кнопку 1, он вычислит 1-е и 2-е поля и напечатает результат на странице. и когда я нажимаю другую показанную кнопку, она разделяет значение3 от результата. как я могу сделать это возможным?

2. Почему вы хотите замедлить процесс нажатием кнопки? Я добавил поле промежуточного результата позади value2 . Возможно, этот подход быстрее и прозрачнее.