Процентные калькуляторы
На этой странице вы можете быстро выполнить различные расчеты с процентами: найти процент от числа, число по проценту, процентное соотношение, увеличить или уменьшить число на процент, а также сравнить два числа в процентах.
В конце страницы представлен исходный код всех калькуляторов. Вы можете:
- Использовать его в своих проектах — полностью или частично.
- Изучить принципы работы — код написан на чистом JavaScript и хорошо прокомментирован.
- Взять за основу для создания собственных инструментов.
1. Процент от числа
Вычисляет X% от заданного числа. Пример: 20% от 50 = 10
2. Число от процента
Находит число, если известен его процент. Пример: 10 — это 20% от 50
3. Процентное соотношение
Определяет, сколько процентов составляет X от Y. Пример: 5 от 20 = 25%
4. Изменение числа на процент
Увеличивает или уменьшает число на X%. Пример: 100 + 10% = 110; 100 – 10% = 90
5. Разница в процентах
Считает, на сколько процентов X больше/меньше Y. Пример: 150 vs 100 = на 50% больше
Исходный код процентных калькуляторов:
HTML:
<div class="vifed-calculators-container"> <div class="vifed-intro"> На этой странице вы можете быстро выполнить различные расчеты с процентами: найти процент от числа, число по проценту, процентное соотношение, увеличить или уменьшить число на процент, а также сравнить два числа в процентах. </div> <!-- 1. Процент от числа --> <div class="vifed-calculator"> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_num1" placeholder="50" oninput="vifed_checkInputs(1)"> </div> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_percent1" placeholder="20" oninput="vifed_checkInputs(1)"> </div> <div class="vifed-result-container" id="vifed_resultContainer1" style="display: none;"> </div> </div> <!-- 2. Число от процента --> <div class="vifed-calculator"> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_part2" placeholder="10" oninput="vifed_checkInputs(2)"> </div> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_percent2" placeholder="20" oninput="vifed_checkInputs(2)"> </div> <div class="vifed-result-container" id="vifed_resultContainer2" style="display: none;"> </div> </div> <!-- 3. Процентное соотношение --> <div class="vifed-calculator"> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_part3" placeholder="5" oninput="vifed_checkInputs(3)"> </div> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_whole3" placeholder="20" oninput="vifed_checkInputs(3)"> </div> <div class="vifed-result-container" id="vifed_resultContainer3" style="display: none;"> </div> </div> <!-- 4. Увеличение/уменьшение на процент --> <div class="vifed-calculator"> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_num4" placeholder="100" oninput="vifed_checkInputs(4)"> </div> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_percent4" placeholder="10" oninput="vifed_checkInputs(4)"> </div> <div class="vifed-result-container" id="vifed_resultContainer4" style="display: none;"> </div> </div> <!-- 5. Разница в процентах --> <div class="vifed-calculator"> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_num5a" placeholder="150" oninput="vifed_checkInputs(5)"> </div> <div class="vifed-input-group"> <input type="number" class="vifed-input" id="vifed_num5b" placeholder="100" oninput="vifed_checkInputs(5)"> </div> <div class="vifed-result-container" id="vifed_resultContainer5" style="display: none;"> </div> </div> </div>
CSS:
.vifed - calculators - container { font - family: 'Arial', sans - serif; line - height: 1.6; color: #333; max-width: 1000px; margin: 0 auto; padding: 20px; background: # fff; } .vifed-title { text-align: center; color: #444; } .vifed-intro { text-align: center; margin-bottom: 30px; color: #666; } .vifed - calculator { background: #f9f9f9; border - radius: 8 px; padding: 20 px; margin - bottom: 30 px; box - shadow: 0 2 px 5 px rgba(0, 0, 0, 0.05); } .vifed - calculator h2 { margin - top: 0; color: #2c3e50; border-bottom: 1px solid # eee; padding - bottom: 10 px; } .vifed - calculator p { color: #666; font-size: 0.95em; } .vifed-input, .vifed-btn { padding: 10px; margin: 5px 0; border: 1px solid # ddd; border - radius: 4 px; font - size: 16 px; } .vifed - input { width: calc(100 % -22 px); } .vifed - btn { background: #3498db; color: white; border: none; cursor: pointer; transition: background 0.3s; } .vifed-btn:hover { background: # 2980 b9; } .vifed - btn: disabled { background: #cccccc; cursor: not - allowed; } .vifed - result - container { display: flex; align - items: center; gap: 10 px; margin - top: 10 px; } .vifed - result { font - weight: bold; padding: 10 px; background: #e8f4fc; border - radius: 4 px; flex - grow: 1; } .vifed - copy - btn { background: #2ecc71; padding: 10px 15px; } .vifed-copy-btn:hover { background: # 27 ae60; } .vifed - input - group { margin - bottom: 10 px; } .vifed - input - group label { display: block; margin - bottom: 5 px; font - weight: bold; }
JavaScript:
/** * Проверяет заполненность полей и активирует/деактивирует кнопки * @param {number} calculatorNum - Номер калькулятора (1-5) */ function vifed_checkInputs(calculatorNum) { let inputs, button, buttons; switch (calculatorNum) { case 1: inputs = [document.getElementById('vifed_num1'), document.getElementById('vifed_percent1')]; button = document.getElementById('vifed_calcBtn1'); break; case 2: inputs = [document.getElementById('vifed_part2'), document.getElementById('vifed_percent2')]; button = document.getElementById('vifed_calcBtn2'); break; case 3: inputs = [document.getElementById('vifed_part3'), document.getElementById('vifed_whole3')]; button = document.getElementById('vifed_calcBtn3'); break; case 4: inputs = [document.getElementById('vifed_num4'), document.getElementById('vifed_percent4')]; buttons = [ document.getElementById('vifed_increaseBtn4'), document.getElementById('vifed_decreaseBtn4') ]; break; case 5: inputs = [document.getElementById('vifed_num5a'), document.getElementById('vifed_num5b')]; button = document.getElementById('vifed_calcBtn5'); break; } // Для калькулятора 4 (у которого две кнопки) if (calculatorNum === 4) { const allFilled = inputs.every(input => input.value.trim() !== ''); buttons.forEach(btn => { btn.disabled = !allFilled; }); return; } // Для остальных калькуляторов const allFilled = inputs.every(input => input.value.trim() !== ''); button.disabled = !allFilled; } /** * 1. Вычисляет процент от числа */ function vifed_calculatePercentageOfNumber() { const num = parseFloat(document.getElementById('vifed_num1').value); const percent = parseFloat(document.getElementById('vifed_percent1').value); const result = (num * percent) / 100; document.getElementById('vifed_result1').textContent = `${percent}% от ${num} = ${result}`; document.getElementById('vifed_resultContainer1').style.display = 'flex'; } /** * 2. Находит число по известному проценту */ function vifed_calculateNumberFromPercentage() { const part = parseFloat(document.getElementById('vifed_part2').value); const percent = parseFloat(document.getElementById('vifed_percent2').value); const result = (part * 100) / percent; document.getElementById('vifed_result2').textContent = `${part} — это ${percent}% от ${result}`; document.getElementById('vifed_resultContainer2').style.display = 'flex'; } /** * 3. Вычисляет процентное соотношение */ function vifed_calculatePercentageRatio() { const part = parseFloat(document.getElementById('vifed_part3').value); const whole = parseFloat(document.getElementById('vifed_whole3').value); const result = (part / whole) * 100; document.getElementById('vifed_result3').textContent = `${part} от ${whole} = ${result.toFixed(2)}%`; document.getElementById('vifed_resultContainer3').style.display = 'flex'; } /** * 4. Увеличивает число на процент */ function vifed_increaseNumber() { const num = parseFloat(document.getElementById('vifed_num4').value); const percent = parseFloat(document.getElementById('vifed_percent4').value); const result = num * (1 + percent / 100); document.getElementById('vifed_result4').textContent = `${num} + ${percent}% = ${result}`; document.getElementById('vifed_resultContainer4').style.display = 'flex'; } /** * 4. Уменьшает число на процент */ function vifed_decreaseNumber() { const num = parseFloat(document.getElementById('vifed_num4').value); const percent = parseFloat(document.getElementById('vifed_percent4').value); const result = num * (1 - percent / 100); document.getElementById('vifed_result4').textContent = `${num} – ${percent}% = ${result}`; document.getElementById('vifed_resultContainer4').style.display = 'flex'; } /** * 5. Считает разницу между числами в процентах */ function vifed_calculatePercentageDifference() { const numA = parseFloat(document.getElementById('vifed_num5a').value); const numB = parseFloat(document.getElementById('vifed_num5b').value); const difference = ((numA - numB) / numB) * 100; const text = difference >= 0 ? `на ${difference.toFixed(2)}% больше` : `на ${Math.abs(difference).toFixed(2)}% меньше`; document.getElementById('vifed_result5').textContent = `${numA} vs ${numB} = ${text}`; document.getElementById('vifed_resultContainer5').style.display = 'flex'; } /** * Копирует результат в буфер обмена * @param {number} calculatorNum - Номер калькулятора (1-5) */ function vifed_copyResult(calculatorNum) { const resultText = document.getElementById(`vifed_result${calculatorNum}`).textContent; navigator.clipboard.writeText(resultText).then(() => { alert('Результат скопирован!'); }).catch(err => { console.error('Ошибка копирования: ', err); }); }