Input: Посчитать сколько процентов составляет число от числа
Нужно посчитать сколько процентов составляет одно значение в input относительно другого значения input. Значение вывести в третий input.
Число
<input name="effect15" id="effect15" class="input" value="40"><br>
Составляет от числа
<input name="effect16" id="effect16" class="input" value="50">
Столько процентов:
<input name="effect17" id="effect17" class="input" value="">
effect15/effect16*100=effect17
И посчитать на сколько % одно число меньше другого
Число
<input name="effect20" id="effect20" class="input" value="40"><br>
Меньше числа
<input name="effect21" id="effect21" class="input" value="50">
На столько процентов:
<input name="effect22" id="effect22" class="input" value="">
100-effect20/effect21*100=effect22
Ответы (2 шт):
Автор решения: Вася Воронцов
→ Ссылка
Задача архипростая, не знаю, где тут могли возникнуть трудности. Конечно, в вопросе и попыток не представлено, но в силу элементарности задания я считаю, что автор вопроса просто не знаком с инструментами (возможностями?) языка
effect15.oninput = defPercent;
effect16.oninput = defPercent;
effect17.oninput = defPercent;
defPercent();
function defPercent() {
let percent = effect15.value/effect16.value*100;
if ("Infinity" == percent) effect17.value = "Неопределено";
else effect17.value = percent + "%";
}
Число
<input name="effect15" id="effect15" class="input" value="40"><br>
Составляет от числа
<input name="effect16" id="effect16" class="input" value="50"><br>
Столько процентов:
<input name="effect17" id="effect17" class="input" value="">
effect20.oninput = defPercent2;
effect21.oninput = defPercent2;
effect22.oninput = defPercent2;
defPercent2();
function defPercent2() {
let percent = (effect21.value - effect20.value) / effect21.value * 100;
if (percent == "Infinity") effect22.value = "Неопределено";
else effect22.value = percent + "%";
}
Число
<input name="effect20" id="effect20" class="input" value="40"><br>
Меньше числа
<input name="effect21" id="effect21" class="input" value="50"><br>
На столько процентов:
<input name="effect22" id="effect22" class="input" value="">
Автор решения: Oliver Patterson
→ Ссылка
Как-то так:
let effect15 = document.querySelector('#effect15');
let effect16 = document.querySelector('#effect16');
let effect17 = document.querySelector('#effect17');
effect15.addEventListener('input', inputChange1);
effect16.addEventListener('input', inputChange1);
inputChange1();
function inputChange1()
{
let result = parseInt(effect15.value) / parseInt(effect16.value) * 100;
effect17.value = Math.floor(result); // floor меняем на нужное действие (round/floor/ceil)
}
// -------------------
let effect20 = document.querySelector('#effect20');
let effect21 = document.querySelector('#effect21');
let effect22 = document.querySelector('#effect22');
effect20.addEventListener('input', inputChange2);
effect21.addEventListener('input', inputChange2);
inputChange2();
function inputChange2()
{
let result = 100 - (parseInt(effect15.value) / parseInt(effect16.value) * 100);
effect22.value = Math.floor(result); // floor меняем на нужное действие (round/floor/ceil)
}
Число
<input name="effect15" id="effect15" class="input" value="40"><br>
Составляет от числа
<input name="effect16" id="effect16" class="input" value="50"><br>
Столько процентов:
<input name="effect17" id="effect17" class="input" value=""><br>
<hr>
Число
<input name="effect20" id="effect20" class="input" value="40"><br>
Меньше числа
<input name="effect21" id="effect21" class="input" value="50"><br>
На столько процентов:
<input name="effect22" id="effect22" class="input" value=""><br>