#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
. Возможно, этот подход быстрее и прозрачнее.