parent
fb42dc5656
commit
2f9751f1f7
@ -0,0 +1,88 @@
|
||||
let displayValue = '0'; // 显示屏上的内容
|
||||
let firstNumber = null; // 第一个数字
|
||||
let secondNumber = null; // 第二个数字
|
||||
let operation = null; // 运算符
|
||||
let waitingForSecondNumber = false;
|
||||
|
||||
// 更新显示
|
||||
function updateDisplay() {
|
||||
const display = document.getElementById('display');
|
||||
display.innerText = displayValue;
|
||||
}
|
||||
|
||||
// 添加数字
|
||||
function appendNumber(number) {
|
||||
if (waitingForSecondNumber) {
|
||||
displayValue = number.toString();
|
||||
waitingForSecondNumber = false;
|
||||
} else {
|
||||
displayValue = displayValue === '0' ? number.toString() : displayValue + number.toString();
|
||||
}
|
||||
updateDisplay();
|
||||
}
|
||||
|
||||
// 设置运算符
|
||||
function setOperation(op) {
|
||||
if (firstNumber === null) {
|
||||
firstNumber = parseFloat(displayValue);
|
||||
} else if (operation) {
|
||||
secondNumber = parseFloat(displayValue);
|
||||
firstNumber = performCalculation(firstNumber, secondNumber, operation);
|
||||
displayValue = firstNumber.toString();
|
||||
updateDisplay();
|
||||
}
|
||||
operation = op;
|
||||
waitingForSecondNumber = true;
|
||||
}
|
||||
|
||||
// 计算结果
|
||||
function calculate() {
|
||||
if (operation && !waitingForSecondNumber) {
|
||||
secondNumber = parseFloat(displayValue);
|
||||
displayValue = performCalculation(firstNumber, secondNumber, operation).toString();
|
||||
firstNumber = null;
|
||||
secondNumber = null;
|
||||
operation = null;
|
||||
updateDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
// 执行计算
|
||||
function performCalculation(num1, num2, operator) {
|
||||
switch (operator) {
|
||||
case '+':
|
||||
return num1 + num2;
|
||||
case '-':
|
||||
return num1 - num2;
|
||||
case '*':
|
||||
return num1 * num2;
|
||||
case '/':
|
||||
return num2 !== 0 ? num1 / num2 : '错误';
|
||||
default:
|
||||
return num2;
|
||||
}
|
||||
}
|
||||
|
||||
// 百分号处理
|
||||
function percent() {
|
||||
displayValue = (parseFloat(displayValue) / 100).toString();
|
||||
updateDisplay();
|
||||
}
|
||||
|
||||
// 添加小数点
|
||||
function appendSymbol(symbol) {
|
||||
if (!displayValue.includes(symbol)) {
|
||||
displayValue += symbol;
|
||||
updateDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
// 清除显示
|
||||
function clearDisplay() {
|
||||
displayValue = '0';
|
||||
firstNumber = null;
|
||||
secondNumber = null;
|
||||
operation = null;
|
||||
waitingForSecondNumber = false;
|
||||
updateDisplay();
|
||||
}
|
Loading…
Reference in new issue