/
kosalexs
/
test
Обзор
Документация
Войти
/
kosalexs
/
test
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
calculator.php
185 строк
6 KB
Konstantin Alekseev
feat: первая версия проекта
10 фев 2026, 08:48
10 фев 2026, 08:48
163197e
Код
Авторство
О чём код?
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <title>Простейший калькулятор</title> <style> body { font-family: Arial, sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-color: #f4f4f4; } .calculator { border: 1px solid #ccc; padding: 20px; border-radius: 10px; background-color: #fff; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); width: 300px; } .display { width: 100%; height: 40px; margin-bottom: 10px; text-align: right; font-size: 1.5em; padding: 5px; box-sizing: border-box; border: 1px solid #ccc; border-radius: 5px; } .buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; } button { padding: 10px; font-size: 1em; border: none; border-radius: 5px; cursor: pointer; background-color: #f0f0f0; } button:hover { background-color: #e0e0e0; } .operator { background-color: #ffcccb; } .equals { background-color: #98fb98; } .round { background-color: #87ceeb; } </style> </head> <body> <div class="calculator"> <input type="text" class="display" id="display" disabled> <div class="buttons"> <button onclick="appendToDisplay('7')">7</button> <button onclick="appendToDisplay('8')">8</button> <button onclick="appendToDisplay('9')">9</button> <button onclick="setOperation('/')" class="operator">/</button> <button onclick="appendToDisplay('4')">4</button> <button onclick="appendToDisplay('5')">5</button> <button onclick="appendToDisplay('6')">6</button> <button onclick="setOperation('*')" class="operator">*</button> <button onclick="appendToDisplay('1')">1</button> <button onclick="appendToDisplay('2')">2</button> <button onclick="appendToDisplay('3')">3</button> <button onclick="setOperation('-')" class="operator">-</button> <button onclick="appendToDisplay('0')">0</button> <button onclick="appendToDisplay('.')">.</button> <button onclick="calculateResult()" class="equals">=</button> <button onclick="setOperation('+')" class="operator">+</button> <button onclick="roundToInteger()" class="round">Целое</button> <button onclick="roundToTwoDecimals()" class="round">2 знака</button> <button onclick="clearDisplay()">C</button> <button onclick="deleteLastChar()">←</button> </div> </div> <script> let currentInput = ''; let operator = null; let previousInput = ''; let resetScreen = false; function appendToDisplay(value) { const display = document.getElementById('display'); if (resetScreen) { display.value = ''; resetScreen = false; } display.value += value; currentInput = display.value; } function setOperation(op) { if (currentInput === '') return; if (previousInput !== '') { calculateResult(); } operator = op; previousInput = currentInput; currentInput = ''; resetScreen = true; } function calculateResult() { if (operator === null || currentInput === '') return; const display = document.getElementById('display'); const prev = parseFloat(previousInput); const current = parseFloat(currentInput); let result = 0; switch (operator) { case '+': result = prev + current; break; case '-': result = prev - current; break; case '*': result = prev * current; break; case '/': if (current === 0) { alert('Деление на ноль!'); clearDisplay(); return; } result = prev / current; break; } display.value = result; currentInput = result; operator = null; previousInput = ''; resetScreen = true; } function roundToInteger() { const display = document.getElementById('display'); if (display.value === '') return; const value = parseFloat(display.value); display.value = Math.round(value); currentInput = display.value; } function roundToTwoDecimals() { const display = document.getElementById('display'); if (display.value === '') return; const value = parseFloat(display.value); display.value = Math.round(value * 100) / 100; currentInput = display.value; } function clearDisplay() { document.getElementById('display').value = ''; currentInput = ''; previousInput = ''; operator = null; resetScreen = false; } function deleteLastChar() { const display = document.getElementById('display'); display.value = display.value.slice(0, -1); currentInput = display.value; } </script> </body> </html>