如何用js做一个简易计算器

JavaScript015

如何用js做一个简易计算器,第1张

js做一个简易计算器具体如下:

<html>

<head>

<title>js运算</title>

<boby>

<table>

<tr>

<td>第一个数</td>

<td><input type="text" id="onesum"></td>

</tr>

<tr>

<td>运算符号</td>

<td><input type="text" id="fh"></td>

</tr>

<tr>

<td>第二个数</td>

<td><input type="text" id="twosum"></td>

</tr>

<tr>

<td>计算结果</td>

<td><input type="text" id="sum"></td>

</tr>

<tr>

<td colspan="2"><input type="button" value="   计算   " onclick="js()"></td>

</tr>

<table>

<script>

function js(){

var num1=document.getElementById("onesum").value

var num2=document.getElementById("twosum").value

var fh=document.getElementById("fh").value

var sum=0

nu

m1=Number(num1)

num2=Number(num2)

if(fh=='+')

{

sum=num1+num2

}

else if(fh=='-')

{

sum=num1-num2

}else if(fh=='*')

{

sum=num1*num2

}else if(fh=='/')

{

sum=num1/num2

}

//alert(sum)

document.getElementById("sum").value=sum

}

</script>

</boby>

</html>

JavaScript 教程 JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。

<!doctype html>    

<html>    

<head>    

<title>计算器</title>    

<meta charset="utf-8"/>    

<style type="text/css">    

.panel{    

   border:4px solid #ddd    

width:192px    

margin:100px auto    

}    

.panel p,.panel input{    

   font-family:"微软雅黑"    

font-size:20px    

margin:4px    

float:left    

}    

.panel p{    

   width:122px    

height:26px    

border:1px solid #ddd    

padding:6px    

overflow:hidden    

}    

.panel input{    

  width:40px    

height:40px    

border:1px solid #ddd    

}    

</style>    

<script type="text/javascript">    

//参数e用来接收传入的event对象    

function cal(e){    

//1.获取事件源,处理button的事件    

var obj=e.srcElement||e.target    

if(obj.nodeName !="INPUT"){    

  return    

}    

    

var value=obj.value    

var p=document.getElementById("screen")    

if(value=="C"){    

//2.如果是[C],则清空p    

p.innerText=""    

}else if(value=="="){    

//3.如果是[=],则运算    

var exp=p.innerText    

try{    

var result=eval("("+exp+")")    

//如果正确执行,将结果写入p    

p.innerText=result    

}catch(e){    

//发生错误,给予错误提示    

  p.innerText="Error."    

}    

}else{    

//4.如果是其它按钮,则将value追加到p中    

p.innerText+=value    

    

}    

}    

</script>    

</head>    

<body>    

<!--在最外层的div上注册单击事件,传入event对象,然后在函数中通过event判断出事件来源于哪一个button,    

    进而做出应有的处理。这样的好处是,避免在button上大量的注册事件。-->    

<div class="panel" onClick="cal(event)">    

<div>    

<p id="screen"></p>    

<input type="button" value="C">    

<div style="clear:both"></div>    

</div>    

<div>    

<input type="button" value="7">    

<input type="button" value="8">    

<input type="button" value="9">    

<input type="button" value="/">    

<input type="button" value="4">    

<input type="button" value="5">    

<input type="button" value="6">    

<input type="button" value="*">    

<input type="button" value="1">    

<input type="button" value="2">    

<input type="button" value="3">    

<input type="button" value="-">    

<input type="button" value="0">    

<input type="button" value=".">    

<input type="button" value="=">    

<input type="button" value="+">    

<div style="clear:both"></div>    

</div>    

</body>    

</html>

这是我自学时候写的计算器

以下简单说下用 JavaScript 编写简单计算器的思路。

一、运算核心

对于 JavaScript 来说,编写一个简单的计算器的核心,是借用 js 提供的 eval 函数,eval 函数可以对给定的字符串表达式执行运算,并返回结果。

举例来说:

s = eval("50+20-30*40/20")

其结果是 10。可以看出,先乘除后加减等运算规则都能正确处理。

二、输入(组合)运算式

核心运算解决后,下一步就是解决如何输入(组合)运算式。

其实也并不复杂,计算器上的符号可以分为4类:

1、0-9 数值

2、% .

3、+ - * /

4、= 退格

除了第 2 类和第 4 类,需要专门处理外,基本上都可以当做字符串处理。即,设置一个全局变量,用于保存用户的输入,当点击时,将值添加进变量字符串的末尾。

当用户点击 “=” 时,调用 eval 函数,计算表达式,并输出结果。

当用户点击“退格”时,删除表达式的最后一个字符。

三、进行界面设计

对于 JS 来说,大多还是要借用 HTML 元素,如 Button 等,样式用 CSS 进行控制。

以下提供相关代码供参考:

<script>

        var num = 0  // 定义第一个输入的数据

        function jsq(num) {

            //获取当前输入

            if(num=="%"){

                document.getElementById('screenName').value=Math.round(document.getElementById('screenName').value)/100

            }else{

                document.getElementById('screenName').value += document.getElementById(num).value

            }

        }

        function eva() {

            //计算输入结果

            document.getElementById("screenName").value = eval(document.getElementById("screenName").value)

        }

        function clearNum() {

            //清0

            document.getElementById("screenName").value = null

            document.getElementById("screenName").focus()

        }

        function tuiGe() {

            //退格

            var arr = document.getElementById("screenName")

            arr.value = arr.value.substring(0, arr.value.length - 1)

        }

    </script>