diff --git a/Calculator/sushil-2803/use.js b/Calculator/sushil-2803/use.js index 68630e05b..dcb834c6c 100644 --- a/Calculator/sushil-2803/use.js +++ b/Calculator/sushil-2803/use.js @@ -14,6 +14,12 @@ function number_handler(event) { var currentString = input.innerHTML; var lastChar = currentString[currentString.length - 1]; + // enhancement added here: Prevent multiple decimals in a single number + if (event.target.innerHTML === '.' && currentString.includes('.')) { + console.log("Multiple decimal points not allowed in a single number."); + return; + } + // if result is not diplayed, just keep adding if (resultDisplayed === false) { input.innerHTML += event.target.innerHTML; @@ -41,6 +47,12 @@ function operator_handler(event) { var currentString = input.innerHTML; var lastChar = currentString[currentString.length - 1]; + // enhancement added here: Prevent consecutive operators + if (lastChar === "+" || lastChar === "-" || lastChar === "×" || lastChar === "÷") { + input.innerHTML = currentString.slice(0, -1) + event.target.innerHTML; + return; + } + // if last character entered is an operator, replace it with the currently pressed one if (lastChar === "+" || lastChar === "-" || lastChar === "x" || lastChar === "÷") { var newString = currentString.substring(0, currentString.length - 1) + event.target.innerHTML; @@ -122,6 +134,12 @@ function output(){ // first we replace all the numbers and dot with empty string and then split var operators = inputString.replace(/[0-9]|\./g, "").split(""); + // enhancement added here: Division by zero check + if (operators.includes("÷") && numbers[numbers.indexOf("÷") + 1] == 0) { + alert("Error: Division by zero is undefined."); + return; + } + console.log(inputString); console.log(operators); console.log(numbers);