简单的计算器的思路

首先把运算分为 两个数的运算(用运算符结束第一个数,开始第二个数);其次考虑小数点的处理(为小数点设置一个标志位,和小数点长度的存储位)

html 文件

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'test_0706.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->
 
 <style type="text/css">
  
 
 </style>
 
 <script language="javascript" type="text/jscript" src="myCalculator.js"></script>
 
  </head>
 
  <body>
   <br />
    <center>
     <table>
      <tr>
       <td colspan="4"><input type = "text" id = "input" name = "input" size = "20"  align="right" value="0" /></td>
      </tr>
      <tr>
       <td><input type = "button" style="width:30px;" name = "button9" id = "button9" value = "9" onClick = "onclick9()" ></td>
       <td><input type = "button" style="width:30px;" name = "button8" id = "button8" value = "8" onClick = "onclick8()" ></td>
       <td><input type = "button" style="width:30px;" name = "button7" id = "button7" value = "7" onClick = "onclick7()" ></td>
       <td><input type = "button" style="width:30px;" name = "buttonDept" id = "buttonDept" value = "/" onClick = "onclickDept()" ></td>
      </tr>
      <tr>
       <td><input type = "button" style="width:30px;" name = "button6" id = "button6" value = "6" onClick = "onclick6()" ></td>
       <td><input type = "button" style="width:30px;" name = "button5" id = "button5" value = "5" onClick = "onclick5()" ></td>
       <td><input type = "button" style="width:30px;" name = "button4" id = "button4" value = "4" onClick = "onclick4()" ></td>
       <td><input type = "button" style="width:30px;" name = "buttonPlus" id = "buttonPlus" value = "*" onClick = "onclickPlus()" ></td>
      </tr>
      <tr>
       <td><input type = "button" style="width:30px;" name = "button3" id = "button3" value = "3" onClick = "onclick3()" ></td>
       <td><input type = "button" style="width:30px;" name = "button2" id = "button2" value = "2" onClick = "onclick2()" ></td>
       <td><input type = "button" style="width:30px;" name = "button1" id = "button1" value = "1" onClick = "onclick1()" ></td>
       <td><input type = "button" style="width:30px;" name = "button0" id = "button0" value = "0" onClick = "onclick0()" ></td>
      </tr>
      <tr>
       <td><input type = "button" style="width:30px;" name = "buttonDot" id = "buttonDot" value = "。" onClick = "onclickDot()" ></td>
       <td><input type = "button" style="width:30px;" name = "buttonAdd" id = "buttonAdd" value = "+" onClick = "onclickAdd()"></td>
       <td><input type = "button" style="width:30px;" name = "buttonSub" id = "buttonSub" value = "-" onClick = "onclickSub()" ></td>
       <td><input type = "button" style="width:30px;" name = "buttonTemp" id = "buttonTemp" value = "=" onClick = "onclickTemp()" ></td>
      </tr>
      <tr>
       <td colspan="4"><input type = "button" id = "clear" name = "clear"  value = "清除"   onClick="clearAll()" /></td>
      </tr>
     </table>
    </center>     
     <br />
     
     <p>温馨提示:<br/>
     1、
     <br/>
     2、
     <br/>
     3、
     </p>
     

  </body>
</html>

 

js文件:


var current = null;//用来存储 符号 信息
var curNumber = 0; //存储 第二个参数
var befNumber = 0; //存储 第一个参数
var dotFlag = false; //标志第一个参数是否有 小数点
var dotLength = 0;// 小数点的长度
//乘号 键
function onclickPlus(){
 current = "*";
 befNumber = document.getElementById("input").value;
 curNumber = 0;
 dotFlag = false;
 dotLength = 0;
}
//除号 键
function onclickDept(){
 current = "/";
 befNumber = document.getElementById("input").value;
 curNumber = 0;
 dotFlag = false;
 dotLength = 0;
}

//加号 键
function onclickAdd(){
 current = "+";
 befNumber = document.getElementById("input").value;
 curNumber = 0;
 dotFlag = false;
 dotLength = 0;
}
//减号 键
function onclickSub(){
 current = "-";
 befNumber = document.getElementById("input").value;
 curNumber = 0;
 dotFlag = false;
 dotLength = 0;
}
//小数点 键
function onclickDot(){
 //curNumber = document.getElementById("input").value;
 //if(befNumber == 0){ 
 //}
 //是小数点显示出来  目前尚未成功
 //document.getElementById("input").value = parseFloat(document.getElementById("input").value) + 0.0 ;
 document.getElementById("input").value = document.getElementById("input").value + ".";
 dotFlag = true;
 dotLength ++;
 
}
//等号键
function onclickTemp(){
 var result = 0;
 if(current == "*"){
  result = eval(" befNumber*curNumber ");
 }else if(current == "/"){
  result = eval(" befNumber/curNumber ");
 }else if(current =="+"){
 //做加法运算要特别注意,不要弄成字符串的链接,注意类型转换
  result = eval(" parseFloat(befNumber)+parseFloat(curNumber) ");
 }else if(current == "-"){
  result = eval(" befNumber-curNumber ");
 }else if(current == "null"){
  result = befNumber;
 }
 
 document.getElementById("input").value = result;
 result = 0;
 curNumber = 0;
 current = null;
 dotFlag = false;
 dotLength = 0;
}
//清除 键
function clearAll(){
 document.getElementById("input").value = 0;
 curNumber = 0;
 current = null;
 befNumber = 0;
 dotFlag = false;
 dotLength = 0;
}

//数字键
function onclick9(){
 var temp = document.getElementById("input").value;
 
 if( dotFlag == 1 ){
  temp = parseFloat(temp) ;
  document.getElementById("input").value = temp + 9/(Math.pow(10,dotLength));
  dotLength = dotLength+1;
 }else{
 
  if( (current == null)){
   document.getElementById("input").value = temp*10 + 9;
  }else{
   curNumber = curNumber *10 + 9;
   document.getElementById("input").value = curNumber; 
  }
 
 }
}

function onclick8(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 8;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 8/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 8;
  document.getElementById("input").value = curNumber; 
 } 
}

function onclick7(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 7;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 7/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 7;
  document.getElementById("input").value = curNumber; 
 }
}

function onclick6(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 6;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 6/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 6;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick5(){
  var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 5;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 5/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 5;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick4(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 4;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 4/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 4;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick3(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 3;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 3/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 3;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick2(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 2;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 2/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 2;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick1(){
 var temp = document.getElementById("input").value; 
// 判断是否是第一个 数
 if( (current == null)){
 
  //判断是不是 有小数点
  if(dotFlag==false){
  //没有小数点的情况  正常处理
   document.getElementById("input").value = parseInt(temp)*10 + 8;
  }else{
  //有小数点的情况 先转换 再相加
   document.getElementById("input").value = parseFloat(temp) + 8/(Math.pow(10,dotLength));
   dotLength ++;
  }
 }else{
  curNumber = curNumber *10 + 8;
  document.getElementById("input").value = curNumber; 
 }
}
function onclick0(){
 var temp = document.getElementById("input").value;
 if( (current == null)){
  document.getElementById("input").value = temp*10 + 0;
 }else{
  curNumber = curNumber *10 + 0;
  document.getElementById("input").value = curNumber; 
 }
}


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值