| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
md3c
10年前发布

JavaScript实现的计算器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>JavaScript计算器</title>  <style type="text/css">  input {   background-color: #CCC;   width: 70px;   height: 40px;  }    table {   background-color: #999;   border: 3px solid #666;   padding: 3px;  }    .result {   width: 420px;   background-color: #999;   margin-bottom: 10px;   font-family: "微软雅黑", Verdana, sans-serif, "宋体";   font-size: 14px;   color: #FFF;   padding-left: 20px;  }    .clear {   width: 146px;  }  </style>  </head>  <script language="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;    }   }  </script>  <body onload="setStartState()">  <h2>JavaScript计算器</h2>  <form name="cal">  <table cellpadding="0" cellspacing="0">   <tr align="center">    <td colspan="6"><input class="result" type="Text" name="total"     size="25" value="0"></td>   </tr>   <tr align="center">    <td><input type="Button" value="sin" onclick="useFunc('sin')"></td>    <td><input type="Button" value="cos" onclick="useFunc('cos')"></td>    <td><input type="Button" value="1" onclick="add('1')"></td>    <td><input type="Button" value="2" onclick="add('2')"></td>    <td><input type="Button" value="3" onclick="add('3')"></td>    <td><input type="Button" value="+" onclick="setOper('+')"></td>   </tr>   <tr align="center">    <td><input type="Button" value="asin" onclick="useFunc('asin')"></td>    <td><input type="Button" value="acos" onclick="useFunc('acos')"></td>    <td><input type="Button" value="4" onclick="add('4')"></td>    <td><input type="Button" value="5" onclick="add('5')"></td>    <td><input type="Button" value="6" onclick="add('6')"></td>    <td><input type="Button" value="-" onclick="setOper('-')"></td>   </tr>   <tr align="center">    <td><input type="Button" value="tan" onclick="useFunc('tan')"></td>    <td><input type="Button" value="atan" onclick="useFunc('atan')"></td>    <td><input type="Button" value="7" onclick="add('7')"></td>    <td><input type="Button" value="8" onclick="add('8')"></td>    <td><input type="Button" value="9" onclick="add('9')"></td>    <td><input type="Button" value="x" onclick="setOper('*')"></td>   </tr>   <tr align="center">    <td><input type="Button" value="log" onclick="useFunc('log')"></td>    <td><input type="Button" value="exp" onclick="useFunc('exp')"></td>    <td><input type="Button" value="0" onclick="add('0')"></td>    <td><input type="Button" value="." onclick="addPoint()"></td>    <td><input type="Button" value="c" onclick="cleartext()"></td>    <td><input type="Button" value="÷" onclick="setOper('/')"></td>   </tr>   <tr align="center">    <td><input type="Button" value="sqrt" onclick="useFunc('sqrt')">    <td><input type="Button" value="1/x" onclick="useFunc('1/x')">    <td><input type="Button" value="pi"     onclick="cal.total.value=Math.PI"></td>    <td><input type="Button" value="E"     onclick="cal.total.value=Math.E"></td>    <td colspan=2><input class="clear" type="Button" value="="     onclick="count()"></td>   </tr>  </table>  </form>  </body>  </html>