var num = 0, result = 0, numshow = "0"; var operate = 0; //判断输入状态的标志 var calcul = 0; //判断计算状态的标志 var quit = 0; //防止重复按键的标志 function command(num) { var str = String(document.calculator.numScreen.value); //获得当前显示数据 str = (str != "0") ? ((operate == 0) ? str : "") : ""; //如果当前值不是"0",且状态为0,则返回当前值,否则返回空值; str = str + String(num); //给当前值追加字符 document.calculator.numScreen.value = str; //刷新显示 operate = 0; //重置输入状态 quit = 0; //重置防止重复按键的标志 } function dzero() { var str = String(document.calculator.numScreen.value); str = (str != "0") ? ((operate == 0) ? str + "00" : "0") : "0"; //如果当前值不是"0",且状态为0,则返回当str+"00",否则返回"0"; document.calculator.numScreen.value = str; operate = 0; } function dot() { var str = String(document.calculator.numScreen.value); str = (str != "0") ? ((operate == 0) ? str : "0") : "0"; //如果当前值不是"0",且状态为0,则返回当前值,否则返回"0"; for (i = 0; i <= str.length; i++) { //判断是否已经有一个点号 if (str.substr(i, 1) == ".") return false; //如果有则不再插入 } str = str + "."; document.calculator.numScreen.value = str; operate = 0; } function del() { //退格 var str = String(document.calculator.numScreen.value); str = (str != "0") ? str : ""; str = str.substr(0, str.length - 1); str = (str != "") ? str : "0"; document.calculator.numScreen.value = str; } function clearscreen() { //清除数据 num = 0; result = 0; numshow = "0"; document.calculator.numScreen.value = "0"; } function plus() { //加法 calculate(); //调用计算函数 operate = 1; //更改输入状态 calcul = 1; //更改计算状态为加 } function minus() { //减法 calculate(); operate = 1; calcul = 2; } function times() { //乘法 calculate(); operate = 1; calcul = 3; } function divide() { //除法 calculate(); operate = 1; calcul = 4; } function persent() { //求余 calculate(); operate = 1; calcul = 5; } function equal() { calculate(); //等于 operate = 1; num = 0; result = 0; numshow = "0"; } // function calculate() { numshow = Number(document.calculator.numScreen.value); if (num != 0 && quit != 1) { //判断前一个运算数是否为零以及防重复按键的状态 switch (calcul) { //判断要输入状态 case 1: result = num + numshow; break; //计算"+" case 2: result = num - numshow; break; //计算"-" case 3: result = num * numshow; break; case 4: if (numshow != 0) { result = num / numshow; } else { document.getElementById("note").innerHTML = "被除数不能为零!"; setTimeout(clearnote, 4000) } break; case 5: result = num % numshow; break; } quit = 1; //避免重复按键 } else { result = numshow; } numshow = String(result); document.calculator.numScreen.value = numshow; num = result; //存储当前值 } function clearnote() { //清空提示 document.getElementById("note").innerHTML = ""; }