calc: только сложение и вычитание

This commit is contained in:
olzhasus 2026-06-03 16:36:53 +00:00
parent 7203eca882
commit a71bf80a04

View File

@ -97,25 +97,20 @@ body {
<div class="calc">
<div class="display" id="display">0</div>
<div class="buttons">
<button class="btn btn-clear" id="clear">C</button>
<button class="btn btn-op" data-op="±">±</button>
<button class="btn btn-op" data-op="%">%</button>
<button class="btn btn-op" data-op="÷">÷</button>
<button class="btn btn-num" data-num="7">7</button>
<button class="btn btn-num" data-num="8">8</button>
<button class="btn btn-num" data-num="9">9</button>
<button class="btn btn-op" data-op="×">×</button>
<button class="btn btn-op" data-op=""></button>
<button class="btn btn-num" data-num="4">4</button>
<button class="btn btn-num" data-num="5">5</button>
<button class="btn btn-num" data-num="6">6</button>
<button class="btn btn-op" data-op=""></button>
<button class="btn btn-op" data-op="+">+</button>
<button class="btn btn-num" data-num="1">1</button>
<button class="btn btn-num" data-num="2">2</button>
<button class="btn btn-num" data-num="3">3</button>
<button class="btn btn-op" data-op="+">+</button>
<button class="btn btn-clear" id="clear">C</button>
<button class="btn btn-num btn-zero" data-num="0">0</button>
<button class="btn btn-num" data-num=".">.</button>
@ -149,8 +144,6 @@ document.querySelectorAll('[data-num]').forEach(btn => {
document.querySelectorAll('[data-op]').forEach(btn => {
btn.addEventListener('click', () => {
const op = btn.dataset.op;
if (op === '±') { current = String(parseFloat(current) * -1); updateDisplay(current); return; }
if (op === '%') { current = String(parseFloat(current) / 100); updateDisplay(current); return; }
if (previous !== '' && !resetDisplay) compute();
previous = current;
operation = op;
@ -179,14 +172,10 @@ function compute() {
const b = parseFloat(current);
if (isNaN(a) || isNaN(b)) return;
let result;
switch (operation) {
case '+': result = a + b; break;
case '': result = a - b; break;
case '×': result = a * b; break;
case '÷': result = b !== 0 ? a / b : 'Ошибка'; break;
default: return;
}
current = typeof result === 'number' ? String(Math.round(result * 1e10) / 1e10) : result;
if (operation === '+') result = a + b;
else if (operation === '') result = a - b;
else return;
current = String(Math.round(result * 1e10) / 1e10);
updateDisplay(current);
resetDisplay = true;
}