fix: new number add works

This commit is contained in:
Mike 2023-10-14 06:58:55 -04:00
parent 9698732f03
commit abb1370a11

View file

@ -5,18 +5,13 @@ const ops = {
firstNum: String(), firstNum: String(),
secondNum: String(), secondNum: String(),
operator: undefined, operator: undefined,
lastOperator: undefined,
numFlag: false, numFlag: false,
onSecondNumber: false, onSecondNumber: false,
stringLength: 8, stringLength: 8,
periodClicked: false, periodClicked: false,
result: String(),
updateNum: (num) => {
if (!this.updateSecondNum){
this.firstNum = num;
} else {
this.secondNum = num;
}
},
toggleNumFlag: function() { toggleNumFlag: function() {
this.numFlag = !this.numFlag this.numFlag = !this.numFlag
}, },
@ -26,6 +21,7 @@ const ops = {
this.operator = undefined; this.operator = undefined;
this.numFlag = false; this.numFlag = false;
this.onSecondNumber = false; this.onSecondNumber = false;
this.result = String();
display.textContent = "0"; display.textContent = "0";
}, },
appendNumber: function(num) { appendNumber: function(num) {
@ -81,25 +77,35 @@ function operate(firstNum, secondNum, operator) {
} }
function handleOperation() { function handleOperation() {
let first = Number(ops.firstNum); const first = Number(ops.firstNum);
let second = Number(ops.secondNum); const second = Number(ops.secondNum);
let result = operate(first, second, ops.operator); let result = operate(first, second, ops.operator);
// result = Math.round(result * (10^3)/(10^3));
if (result === "error") { if (result === "error") {
ops.clear(); ops.clear();
return; return;
} }
result = roundThreeDecimals(result); result = roundThreeDecimals(result);
updateDisplay(result); updateDisplay(result);
ops.firstNum = result;
ops.secondNum = String(); // store result
if (ops.operator === '=') { ops.result = result;
if (ops.lastOperator === '=') {
console.log('This ran');
ops.firstNum = String();
ops.secondNum = String();
ops.numFlag = false; ops.numFlag = false;
ops.onSecondNumber = false; ops.onSecondNumber = !ops.onSecondNumber;
console.log(`Changing second number ${ops.onSecondNumber}`);
} else { } else {
console.log("this else ran");
ops.firstNum = ops.result;
ops.secondNum = "";
ops.onSecondNumber = true; ops.onSecondNumber = true;
} }
ops.operator = undefined; // ops.operator = undefined;
} }
function updateDisplay(displayValue) { function updateDisplay(displayValue) {
@ -116,13 +122,16 @@ function roundThreeDecimals(number) {
} }
function handleOperatorClick(operatorClicked) { function handleOperatorClick(operatorClicked) {
ops.lastOperator = operatorClicked;
// TODO handle ops for = or clear // TODO handle ops for = or clear
if (operatorClicked === 'cls') { if (operatorClicked === 'cls') {
ops.clear(); ops.clear();
return; return;
} else if (operatorClicked === '=') { } else if (operatorClicked === '=') {
ops.lastOperator = '=';
handleOperation(); handleOperation();
return;
} else if (operatorClicked === '+/-') { } else if (operatorClicked === '+/-') {
negateNumber(); negateNumber();
return return
@ -139,6 +148,7 @@ function handleOperatorClick(operatorClicked) {
if(!ops.onSecondNumber){ if(!ops.onSecondNumber){
ops.numFlag = true; ops.numFlag = true;
} }
ops.onSecondNumber = !ops.onSecondNumber; ops.onSecondNumber = !ops.onSecondNumber;
} }