Калькулятор не работает так, как я хочу - PullRequest
0 голосов
/ 17 марта 2020

У меня проблема с калькулятором. Проблема, например, в том, что когда я пытаюсь сделать расчет 6 + 6, а затем нажимаю кнопку «минус», результат будет 0, а не 12. Я был бы благодарен за вашу помощь, спасибо вам :). Вот код

    let numbers= document.querySelectorAll('.number');
    const Operations= document.querySelectorAll('.Operation');
    const C=document.querySelector('.DeleteOne');
    const Equal=document.querySelector('.Result');
    const Buttons=document.querySelectorAll('button');
    let PrevValue=document.querySelector('.Prev');
    let CurrentValue=document.querySelector('.Current');

    let Current="";
    let Prev=0;
    let OnlyKeep=0;
    let CurrentOperation;
    let ResultValue=0;


    function makeCalculation (){
        console.log(CurrentOperation);
        switch (CurrentOperation){
            case '+' :
                OnlyKeep=Prev+parseInt(Current);
                console.log(OnlyKeep);
                Prev=OnlyKeep;
                OnlyKeep=0;
                PrevValue.innerText=Prev;
                Current="";
                break;
            case '-' :
                OnlyKeep=Prev-parseInt(Current);
                Prev=OnlyKeep;
                OnlyKeep=0;
                PrevValue.innerText=Prev;
                Current="";
                break;
            case '*' :
                OnlyKeep=Prev+parseInt(Current);
                Prev=Onlykeep;
                OnlyKeep=0;
                break;
            case '/' :
                OnlyKeep=Prev+parseInt(Current);
                Prev=Onlykeep;
                OnlyKeep=0;
                break;
        };
    }; 

    numbers.forEach(el =>{
        el.addEventListener('click', () => {
            Current+=el.innerText;
            CurrentValue.innerHTML=Current;
        }); 
    });

    Operations.forEach(el => {
        el.addEventListener('click', () => {
            CurrentOperation=el.innerText;
            console.log(CurrentOperation);
            makeCalculation();
        });
    });
    <body>
        <div class="Container">
            <div class="Calculator">


                <div class="ResultBox">
                    <p class="Prev"></p>
                    <p class="Current"></p>
                </div>
                 
                <div class="CalculatorBoxes">
                    <button class="number">1</button>
                    <button class="number">2</button>
                    <button class="number">3</button>
                    <button class="Operation">+</button>
                    <button class="number">4</button>
                    <button class="number">5</button>
                    <button class="number">6</button>
                    <button class="Operation">-</button>
                    <button class="number">7</button>
                    <button class="number">8</button>
                    <button class="number">9</button>
                    <button class="Operation">*</button>
                    <button class="number">0</button>
                    <button class="number">.</button>
                    <button class="DeleteOne">C</button>
                    <button class="Operation">/</button>
                    <button class="Result">=</button>
                </div>

            </div>
        </div>
        <script src="CalcLogic.js"></script>
    </body>

Кстати, я также пытался выполнить вычисления на кнопке с цифрами, и это работает, но проблема в том, что я не могу прочитать более длинные числа, такие как «666» или что-то в этом роде.

...