HTML code
JavaScript计算器var baseoper;
var digitstate;
var num1;
var operstate;
function setStartState()
{
digitstate="beempty";
num1=0;
baseoper="beempty";
operstate=false;
}
function add(i)
{
if(operstate)
{
cal.total.value=i;
operstate=false;
}
else
{
if(cal.total.value=="0")
{
cal.total.value=i;
digistate="bein";
}
else
cal.total.value+=i;
}
}
function cleartext()
{
cal.total.value="0";
digitstate="beempty";
basestate="beempty"
}
function count()
{
if(baseoper!="beempty")
{
switch(baseoper)
{
case"+":
num1=parseFloat(num1)+parseFloat(cal.total.value);
break;
case"-":
num1=parseFloat(num1)-parseFloat(cal.total.value);
break;
case"*":
num1=parseFloat(num1)*parseFloat(cal.total.value);
break;
case"/":
num1=parseFloat(num1)/parseFloat(cal.total.value);
break;
}
preoper=true;
cal.total.value=num1;
}
baseoper="beempty";
}
function useFunc(func)
{
switch(func)
{
case"sin":
cal.total.value=Math.sin(cal.total.value);
break;
case"cos":
cal.total.value=Math.cos(cal.total.value);
break;
case"asin":
cal.total.value=Math.asin(cal.total.value);
break;
case"acos":
cal.total.value=Math.acos(cal.total.value);
break;
case"tan":
cal.total.value=Math.tan(cal.total.value);
break;
case"atan":
cal.total.value=Math.atan(cal.total.value);
break;
case"log":
cal.total.value=Math.log(cal.total.value);
break;
case"exp":
cal.total.value=Math.exp(cal.total.value);
break;
case"sqrt":
cal.total.value=Math.sqrt(cal.total.value);
break;
case"1/x":
cal.total.value=1/cal.total.value;
break;
}
operstate=true;
}
function addPoint()
{
if(digitstate=="bein"||digitstate=="beempty")
{
cal.total.value+=".";
digistate="befloat";
}
}
function setOper(oper)
{
operstate=true;
if(baseoper=="beempty")
{
num1=0+cal.total.value;
baseoper=oper;
}
else
{
count();
baseoper=oper;
}
}
JavaScript计算器