一个计算器js脚本文档格式.docx
《一个计算器js脚本文档格式.docx》由会员分享,可在线阅读,更多相关《一个计算器js脚本文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
![一个计算器js脚本文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/25/40b63a97-0f44-4ecd-8760-4366c5fa81cb/40b63a97-0f44-4ecd-8760-4366c5fa81cb1.gif)
varhexnum="
0123456789abcdef"
varangle="
d"
varstack="
"
varlevel="
0"
varlayer=0
//数字键
functioninputkey(key)
{
varindex=key.charCodeAt(0);
if((carry==2&
&
(index==48||index==49))
||(carry==8&
index>
=48&
index<
=55)
||(carry==10&
(index>
=57||index==46))
||(carry==16&
((index>
=57)||(index>
=97&
=102))))
if(endNumber)
endNumber=false
document.calc.display.value=key
elseif(document.calc.display.value==null||document.calc.display.value=="
)
else
document.calc.display.value+=key
functionchangeSign()
if(document.calc.display.value!
="
if(document.calc.display.value.substr(0,1)=="
-"
document.calc.display.value=document.calc.display.value.substr
(1)
document.calc.display.value="
+document.calc.display.value
//函数键
functioninputfunction(fun,shiftfun)
endNumber=true
if(document.calc.shiftf.checked)
document.calc.display.value=decto(funcalc(shiftfun,(todec(document.calc.display.value,carry))),carry)
document.calc.display.value=decto(funcalc(fun,(todec(document.calc.display.value,carry))),carry)
document.calc.shiftf.checked=false
document.calc.hypf.checked=false
inputshift()
functioninputtrig(trig,arctrig,hyp,archyp)
if(document.calc.hypf.checked)
inputfunction(hyp,archyp)
inputfunction(trig,arctrig)
//运算符
functionoperation(join,newlevel)
vartemp=stack.substr(stack.lastIndexOf("
("
)+1)+document.calc.display.value
while(newlevel!
=0&
(newlevel<
=(level.charAt(level.length-1))))
temp=parse(temp)
level=level.slice(0,-1)
if(temp.match(/^(.*\d[\+\-\*\/\%\^\&
\|x])?
([+-]?
[0-9a-f\.]+)$/))
document.calc.display.value=RegExp.$2
stack=stack.substr(0,stack.lastIndexOf("
)+1)+temp+join
document.calc.operator.value="
"
+join+"
level=level+newlevel
//括号
functionaddbracket()
document.calc.display.value=0
stack=stack+"
level=level+0
layer+=1
document.calc.bracket.value="
(="
+layer
functiondisbracket()
while((level.charAt(level.length-1))>
0)
document.calc.display.value=temp
))
layer-=1
if(layer>
//等号
functionresult()
while(layer>
disbracket()
vartemp=stack+document.calc.display.value
stack="
level="
//修改键
functionbackspace()
if(!
endNumber)
if(document.calc.display.value.length>
1)
document.calc.display.value=document.calc.display.value.substring(0,document.calc.display.value.length-1)
functionclearall()
layer="
//转换键
functioninputChangCarry(newcarry)
document.calc.display.value=(decto(todec(document.calc.display.value,carry),newcarry))
carry=newcarry
document.calc.sin.disabled=(carry!
=10)
document.calc.cos.disabled=(carry!
document.calc.tan.disabled=(carry!
document.calc.bt.disabled=(carry!
document.calc.pi.disabled=(carry!
document.calc.e.disabled=(carry!
document.calc.kp.disabled=(carry!
document.calc.k2.disabled=(carry<
=2)
document.calc.k3.disabled=(carry<
document.calc.k4.disabled=(carry<
document.calc.k5.disabled=(carry<
document.calc.k6.disabled=(carry<
document.calc.k7.disabled=(carry<
document.calc.k8.disabled=(carry<
=8)
document.calc.k9.disabled=(carry<
document.calc.ka.disabled=(carry<
document.calc.kb.disabled=(carry<
document.calc.kc.disabled=(carry<
document.calc.kd.disabled=(carry<
document.calc.ke.disabled=(carry<
document.calc.kf.disabled=(carry<
functioninputChangAngle(angletype)
angle=angletype
if(angle=="
document.calc.display.value=radiansToDegress(document.calc.display.value)
document.calc.display.value=degressToRadians(document.calc.display.value)
functioninputshift()
document.calc.bt.value="
deg"
document.calc.ln.value="
exp"
document.calc.log.value="
expd"
document.calc.sin.value="
ahs"
document.calc.cos.value="
ahc"
document.calc.tan.value="
aht"
asin"
acos"
atan"
document.calc.sqr.value="
x^.5"
document.calc.cube.value="
x^.3"
document.calc.floor.value="
小数"
d.ms"
ln"
log"
hsin"
hcos"
htan"
sin"
cos"
tan"
x^2"
x^3"
取整"
//存储器部分
functionclearmemory()
mem=0
document.calc.memory.value="
functiongetmemory()
document.calc.display.value=decto(mem,carry)
functionputmemory()
=0)
mem=todec(document.calc.display.value,carry)
M"
functionaddmemory()
mem=parseFloat(mem)+parseFloat(todec(document.calc.display.value,carry))
if(mem==0)
functionmultimemory()
mem=parseFloat(mem)*parseFloat(todec(document.calc.display.value,carry))
//十进制转换
functiontodec(num,oldcarry)
if(oldcarry==10||num==0)return(num)
varneg=(num.charAt(0)=="
if(neg)num=num.substr
(1)
varnewnum=0
for(varindex=1;
index<
=num.length;
index++)
newnum=newnum*oldcarry+hexnum.indexOf(num.charAt(index-1))
if(neg)
newnum=-newnum
return(newnum)
functiondecto(num,newcarry)
varneg=(num<
if(newcarry==10||num==0)return(num)
num="
+Math.abs(num)
varnewnum="
while(num!
newnum=hexnum.charAt(num%newcarry)+newnum
num=Math.floor(num/newcarry)
newnum="
+newnum
//表达式解析
functionparse(string)
if(string.match(/^(.*\d[\+\-\*\/\%\^\&
\|x\<
])?
[0-9a-f\.]+)([\+\-\*\/\%\^\&
])([+-]?
return(RegExp.$1+cypher(RegExp.$2,RegExp.$3,RegExp.$4))
return(string)
//数学运算和位运算
functioncypher(left,join,right)
left=todec(left,carry)
right=todec(right,carry)
if(join=="
+"
return(decto(parseFloat(left)+parseFloat(right),carry))
return(decto(left-right,carry))
*"
return(decto(left*right,carry))
/"
&
right!
return(decto(left/right,carry))
%"
return(decto(left%right,carry))
return(decto(left&
right,carry))
|"
return(decto(left|right,carry))
^"
return(decto(Math.pow(left,right),carry))
x"
return(decto(left^right,carry))
return(decto(left<
alert("
除数不能为零"
return(left)
//函数计算
functionfuncalc(fun,num)
with(Math)
if(fun=="
pi"
return(PI)
e"
return(E)
abs"
return(abs(num))
ceil"
return(ceil(num))
round"
return(round(num))
floor"
return(floor(num))
deci"
return(num-floor(num))
ln"
num>
return(log(num))
exp"
return(exp(num))
log"
return(log(num)*LOG10E)
expdec"
return(pow(10,num))
//欢迎来到站长特效网,我们的网址是,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
cube"
return(num*num*num)
cubt"
return(pow(num,1/3))
sqr"
return(num*num)
sqrt"
return(sqrt(num))
return(factorial(num))
recip"
num!
return(1/num)
dms"
return(dms(num))
deg"
return(deg(num))
~"
return(~num)
sin"
return(sin(degressToRadians(num)))
cos"
return(cos(degressToRadians(num)))
tan"
return(tan(degressToRadians(num)))
arcsin"
abs(num)<
=1)
return(radiansToDegress(asin(num)))
arccos"
return(radiansToDegress(acos(num)))
arctan"
return(radiansToDegress(atan(num)))
return(sin(num))
return(cos(num))
return(tan(num))
return(asin(num))
return(acos(num))
return(atan(num))
hypsin"
return((exp(num)-exp(0-num))*0.5)
hypcos"
return((exp(num)+exp(-num))*0.5)
hyptan"
return((exp(num)-exp(-num))/(exp(num)+exp(-num)))
ahypsin"
|fun=="
对不起,公式还没有查到!
re