注册 登录 充值会员 退出
网站、APP、小程序等定制开发,联系QQ 1206995177 毕业设计 java源码 PHP源码

充值

js网页在线科学计算器代码

作者/代码整理:  (源码已亲测,不会安装的可以向QQ1915635791要安装视频教程) 发布日期:2024-03-06
js网页在线科学计算器代码
原生js制作的网页在线科学计算器代码,功能挺强大的计算器工具,就是界面不算美观,有技术的朋友可以美化一下。


js代码

<script type="text/javascript">
//operator 运算符
	var Boo=false;  //判断是否按下计算符号的布尔变量;
	var result=0;  //存储计算数据的变量
	var ope; //存储计算符号的变量

	function $(x){
		return document.getElementById(x)
	}

	function decimal(){
		var txt=$('txtnum');
		if(Boo){
			txt.value='0.' //若接受过运算符,文本框清零
		} else{
			if (txt.value.indexOf('.')==-1) { //判断数值中是否已经有小数点
				txt.value+='.'; //若没有则加上
			}
		}
		Boo=false; //若接受过运算符,文本框不能清零
	}
	//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
	//如果要检索的字符串值没有出现,则该方法返回 -1。

	function num(Num){
		var txt=$('txtnum');
		if (Boo) {
			txt.value=Num;
			Boo=false;
		}else{
			if (txt.value=='0') {
				txt.value=Num
			}else{
				txt.value+=Num;
			}
		}
	}

	function compute(op){
		var onum=$('txtnum').value;
		if (onum=='') {onum=0}
		Boo=true;
		switch(ope){
			case '+':
			result+=parseFloat(onum);break;
			case '-':
			result-=parseFloat(onum);break;
			case '*':
			result*=parseFloat(onum);break;
			case '':
			result/=parseFloat(onum);break;
			case '=':
			result=parseFloat(onum);break;
			case '%':
			result%=onum;break;
			//{result%=onum;break;}break;
			case 'x^y':
			result=Math.pow(result,onum);break;
			//{result=Math.pow(result,onum);break;}break;
			default:result=parseFloat(onum)
		}
		$('txtnum').value=result;
		ope=op;
		
	}

	function math(op){
		var onum=$('txtnum').value;
		if (onum==''){alert('数据不能为空')};
		Boo=true;
		with(Math){
			switch(op){
				case 'sin':result=sin(onum);break;
				case 'cos':result=cos(onum);break;
				case 'tan':result=tan(onum);break;
				case 'asin':result=asin(onum);break;
				case 'acos':result=acos(onum);break;
				case 'atan':result=atan(onum);break;
				case 'PI':result=PI;break;
				case '1/x':result=1/onum;break;
				case 'exp':result=exp(onum);break;
				case 'lnx':result=log(onum);break;
				case 'lgx':result=log(onum)/log(10);break;

				case 'i':result=floor(onum);break;

				case 'n!':result=jc(onum);break;
				default:result=parseFloat(onum);
			}
		}
		$('txtnum').value=result;
	}

	function jc(a){
		if(a==1){
			return 1;	
		}else{
			return jc(a-1)*a	
		}
	}
	function reverse(){
		var Num1=$('txtnum').value;
		if (Num1=='') {
			alert('数据不能为空')
		}else{
			$('txtnum').value*=-1;
		}
		
	}

	function backspace(){
		var txt=$('txtnum');
		txt.value=txt.value.substring(0,txt.value.length-1);
		if (txt.value=='') {txt.value=0}
	}
</script>