1 var num=0,result=0,numshow="0";
2 var operate=0; //判断输入状态的标志
3 var calcul=0; //判断计算状态的标志
4 var quit=0; //防止重复按键的标志
5
6 function command(num){
7 var str=String(document.calculator.numScreen.value); //获得当前显示数据
8 str=(str!="0") ? ((operate==0) ? str : "") : ""; //如果当前值不是"0",且状态为0,则返回当前值,否则返回空值;
9 str=str + String(num); //给当前值追加字符
10 document.calculator.numScreen.value=str; //刷新显示
11 operate=0; //重置输入状态
12 quit=0; //重置防止重复按键的标志
13 }
14
15 function dzero(){
16 var str=String(document.calculator.numScreen.value);
17 str=(str!="0") ? ((operate==0) ? str + "00" : "0") : "0"; //如果当前值不是"0",且状态为0,则返回当str+"00",否则返回"0";
18 document.calculator.numScreen.value=str;
19 operate=0;
20 }
21
22 function dot(){
23 var str=String(document.calculator.numScreen.value);
24 str=(str!="0") ? ((operate==0) ? str : "0") : "0"; //如果当前值不是"0",且状态为0,则返回当前值,否则返回"0";
25 for(i=0; i<=str.length;i++){ //判断是否已经有一个点号
26 if(str.substr(i,1)==".") return false; //如果有则不再插入
27 }
28 str=str + ".";
29 document.calculator.numScreen.value=str;
30 operate=0;
31 }
32
33 function del(){ //退格
34 var str=String(document.calculator.numScreen.value);
35 str=(str!="0") ? str : "";
36 str=str.substr(0,str.length-1);
37 str=(str!="") ? str : "0";
38 document.calculator.numScreen.value=str;
39 }
40
41 function clearscreen(){ //清除数据
42 num=0;
43 result=0;
44 numshow="0";
45 document.calculator.numScreen.value="0";
46 }
47
48 function plus(){ //加法
49 calculate(); //调用计算函数
50 operate=1; //更改输入状态
51 calcul=1; //更改计算状态为加
52 }
53
54 function minus(){ //减法
55 calculate();
56 operate=1;
57 calcul=2;
58 }
59
60 function times(){ //乘法
61 calculate();
62 operate=1;
63 calcul=3;
64 }
65
66 function divide(){ //除法
67 calculate();
68 operate=1;
69 calcul=4;
70 }
71
72 function persent(){ //求余
73 calculate();
74 operate=1;
75 calcul=5;
76 }
77
78 function equal(){
79 calculate(); //等于
80 operate=1;
81 num=0;
82 result=0;
83 numshow="0";
84 }
85 //
86 function calculate(){
87 numshow=Number(document.calculator.numScreen.value);
88 if(num!=0 && quit!=1){ //判断前一个运算数是否为零以及防重复按键的状态
89 switch(calcul){ //判断要输入状态
90 case 1:result=num+numshow;break; //计算"+"
91 case 2:result=num-numshow;break; //计算"-"
92 case 3:result=num*numshow;break;
93 case 4:if(numshow!=0){result=num/numshow;}else{document.getElementById("note").innerHTML="被除数不能为零!"; setTimeout(clearnote,4000)} break;
94 case 5:result=num%numshow;break;
95 }
96 quit=1; //避免重复按键
97 }
98 else{
99 result=numshow;
100 }
101 numshow=String(result);
102 document.calculator.numScreen.value=numshow;
103 num=result; //存储当前值
104 }
105 function clearnote(){ //清空提示
106 document.getElementById("note").innerHTML="";
107 }