js实现的科学计算器

本文介绍了一个使用JavaScript实现的简单网页计算器。该计算器支持多种运算符,并能够处理不同进制的数值输入。文章详细解释了计算器的功能,包括数字键、运算符处理、内存操作等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<html>
<head>
    <title></title>

    <script language="javascript">
<!--
        var endNumber = true
        var mem = 0
        var carry = 10
        var hexnum = "0123456789abcdef"
        var angle = "d"
        var stack = ""
        var level = "0"
        var layer = 0
        //数字键
        function inputkey(key) {
            var index = key.charCodeAt(0);
            if ((carry == 2 && (index == 48 || index == 49))
  || (carry == 8 && index >= 48 && index <= 55)
  || (carry == 10 && (index >= 48 && index <= 57 || index == 46))
  || (carry == 16 && ((index >= 48 && index <= 57) || (index >= 97 && index <= 102))))
                if (endNumber) {
                endNumber = false
                document.calc.display.value = key
            }
            else if (document.calc.display.value == null || document.calc.display.value == "0")
                document.calc.display.value = key
            else
                document.calc.display.value += key
        }
        function changeSign() {
            if (document.calc.display.value != "0")
                if (document.calc.display.value.substr(0, 1) == "-")
                document.calc.display.value = document.calc.display.value.substr(1)
            else
                document.calc.display.value = "-" + document.calc.display.value
        }
        //函数键
        function inputfunction(fun, shiftfun) {
            endNumber = true
            if (document.calc.shiftf.checked)
                document.calc.display.value = decto(funcalc(shiftfun, (todec(document.calc.display.value, carry))), carry)
            else
                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()
        }
        function inputtrig(trig, arctrig, hyp, archyp) {
            if (document.calc.hypf.checked)
                inputfunction(hyp, archyp)
            else
                inputfunction(trig, arctrig)
        }
        //运算符
        function operation(join, newlevel) {
            endNumber = true
            var temp = 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

        }
        //括号
        function addbracket() {
            endNumber = true
            document.calc.display.value = 0
            stack = stack + "("
            document.calc.operator.value = "   "
            level = level + 0

            layer += 1
            document.calc.bracket.value = "(=" + layer
        }
        function disbracket() {
            endNumber = true
            var temp = stack.substr(stack.lastIndexOf("(") + 1) + document.calc.display.value
            while ((level.charAt(level.length - 1)) > 0) {
                temp = parse(temp)
                level = level.slice(0, -1)
            }

            document.calc.display.value = temp
            stack = stack.substr(0, stack.lastIndexOf("("))
            document.calc.operator.value = "   "
            level = level.slice(0, -1)
            layer -= 1
            if (layer > 0)
                document.calc.bracket.value = "(=" + layer
            else
                document.calc.bracket.value = ""
        }
        //等号
        function result() {
            endNumber = true
            while (layer > 0)
                disbracket()
            var temp = stack + document.calc.display.value
            while ((level.charAt(level.length - 1)) > 0) {
                temp = parse(temp)
                level = level.slice(0, -1)
            }
            document.calc.display.value = temp
            document.calc.bracket.value = ""
            document.calc.operator.value = ""
            stack = ""
            level = "0"
        }
        //修改键
        function backspace() {
            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)
                else
                    document.calc.display.value = 0
            }
        }
        function clearall() {
            document.calc.display.value = 0
            endNumber = true
            stack = ""
            level = "0"
            layer = ""
            document.calc.operator.value = ""
            document.calc.bracket.value = ""
        }
        //转换键
        function inputChangCarry(newcarry) {
            endNumber = true
            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 != 10)
            document.calc.tan.disabled = (carry != 10)
            document.calc.bt.disabled = (carry != 10)
            document.calc.pi.disabled = (carry != 10)
            document.calc.e.disabled = (carry != 10)
            document.calc.kp.disabled = (carry != 10)

            document.calc.k2.disabled = (carry <= 2)
            document.calc.k3.disabled = (carry <= 2)
            document.calc.k4.disabled = (carry <= 2)
            document.calc.k5.disabled = (carry <= 2)
            document.calc.k6.disabled = (carry <= 2)
            document.calc.k7.disabled = (carry <= 2)
            document.calc.k8.disabled = (carry <= 8)
            document.calc.k9.disabled = (carry <= 8)
            document.calc.ka.disabled = (carry <= 10)
            document.calc.kb.disabled = (carry <= 10)
            document.calc.kc.disabled = (carry <= 10)
            document.calc.kd.disabled = (carry <= 10)
            document.calc.ke.disabled = (carry <= 10)
            document.calc.kf.disabled = (carry <= 10)


        }
        function inputChangAngle(angletype) {
            endNumber = true
            angle = angletype
            if (angle == "d")
                document.calc.display.value = radiansToDegress(document.calc.display.value)
            else
                document.calc.display.value = degressToRadians(document.calc.display.value)
            endNumber = true
        }
        function inputshift() {
            if (document.calc.shiftf.checked) {
                document.calc.bt.value = "deg "
                document.calc.ln.value = "exp "
                document.calc.log.value = "expd"

                if (document.calc.hypf.checked) {
                    document.calc.sin.value = "ahs "
                    document.calc.cos.value = "ahc "
                    document.calc.tan.value = "aht "
                }
                else {
                    document.calc.sin.value = "asin"
                    document.calc.cos.value = "acos"
                    document.calc.tan.value = "atan"
                }

                document.calc.sqr.value = "x^.5"
                document.calc.cube.value = "x^.3"

                document.calc.floor.value = "小数"
            }
            else {
                document.calc.bt.value = "d.ms"
                document.calc.ln.value = " ln "
                document.calc.log.value = "log "
                if (document.calc.hypf.checked) {
                    document.calc.sin.value = "hsin"
                    document.calc.cos.value = "hcos"
                    document.calc.tan.value = "htan"
                }
                else {
                    document.calc.sin.value = "sin "
                    document.calc.cos.value = "cos "
                    document.calc.tan.value = "tan "
                }

                document.calc.sqr.value = "x^2 "
                document.calc.cube.value = "x^3 "

                document.calc.floor.value = "取整"
            }
        }
        //存储器部分
        function clearmemory() {
            mem = 0
            document.calc.memory.value = "   "
        }
        function getmemory() {
            endNumber = true
            document.calc.display.value = decto(mem, carry)
        }
        function putmemory() {
            endNumber = true
            if (document.calc.display.value != 0) {
                mem = todec(document.calc.display.value, carry)
                document.calc.memory.value = " M "
            }
            else
                document.calc.memory.value = "   "
        }
        function addmemory() {
            endNumber = true
            mem = parseFloat(mem) + parseFloat(todec(document.calc.display.value, carry))
            if (mem == 0)
                document.calc.memory.value = "   "
            else
                document.calc.memory.value = " M "
        }
        function multimemory() {
            endNumber = true
            mem = parseFloat(mem) * parseFloat(todec(document.calc.display.value, carry))
            if (mem == 0)
                document.calc.memory.value = "   "
            else
                document.calc.memory.value = " M "
        }
        //十进制转换
        function todec(num, oldcarry) {
            if (oldcarry == 10 || num == 0) return (num)
            var neg = (num.charAt(0) == "-")
            if (neg) num = num.substr(1)
            var newnum = 0
            for (var index = 1; index <= num.length; index++)
                newnum = newnum * oldcarry + hexnum.indexOf(num.charAt(index - 1))
            if (neg)
                newnum = -newnum
            return (newnum)
        }
        function decto(num, newcarry) {
            var neg = (num < 0)
            if (newcarry == 10 || num == 0) return (num)
            num = "" + Math.abs(num)
            var newnum = ""
            while (num != 0) {
                newnum = hexnum.charAt(num % newcarry) + newnum
                num = Math.floor(num / newcarry)
            }
            if (neg)
                newnum = "-" + newnum
            return (newnum)
        }
        //表达式解析
        function parse(string) {
            if (string.match(/^(.*/d[/+/-/*///%/^/&/|x/<])?([+-]?[0-9a-f/.]+)([/+/-/*///%/^/&/|x/<])([+-]?[0-9a-f/.]+)$/))
                return (RegExp.$1 + cypher(RegExp.$2, RegExp.$3, RegExp.$4))
            else
                return (string)
        }
        //数学运算和位运算
        function cypher(left, join, right) {
            left = todec(left, carry)
            right = todec(right, carry)
            if (join == "+")
                return (decto(parseFloat(left) + parseFloat(right), carry))
            if (join == "-")
                return (decto(left - right, carry))
            if (join == "*")
                return (decto(left * right, carry))
            if (join == "/" && right != 0)
                return (decto(left / right, carry))
            if (join == "%")
                return (decto(left % right, carry))
            if (join == "&")
                return (decto(left & right, carry))
            if (join == "|")
                return (decto(left | right, carry))
            if (join == "^")
                return (decto(Math.pow(left, right), carry))
            if (join == "x")
                return (decto(left ^ right, carry))
            if (join == "<")
                return (decto(left << right, carry))
            alert("除数不能为零")
            return (left)
        }
        //函数计算
        function funcalc(fun, num) {
            with (Math) {
                if (fun == "pi")
                    return (PI)
                if (fun == "e")
                    return (E)
                if (fun == "abs")
                    return (abs(num))
                if (fun == "ceil")
                    return (ceil(num))
                if (fun == "round")
                    return (round(num))
                if (fun == "floor")
                    return (floor(num))
                if (fun == "deci")
                    return (num - floor(num))
                if (fun == "ln" && num > 0)
                    return (log(num))
                if (fun == "exp")
                    return (exp(num))
                if (fun == "log" && num > 0)
                    return (log(num) * LOG10E)
                if (fun == "expdec")
                    return (pow(10, num))

                if (fun == "cube")
                    return (num * num * num)
                if (fun == "cubt")
                    return (pow(num, 1 / 3))
                if (fun == "sqr")
                    return (num * num)
                if (fun == "sqrt" && num >= 0)
                    return (sqrt(num))
                if (fun == "!")
                    return (factorial(num))
                if (fun == "recip" && num != 0)
                    return (1 / num)

                if (fun == "dms")
                    return (dms(num))
                if (fun == "deg")
                    return (deg(num))
                if (fun == "~")
                    return (~num)

                if (angle == "d") {
                    if (fun == "sin")
                        return (sin(degressToRadians(num)))
                    if (fun == "cos")
                        return (cos(degressToRadians(num)))
                    if (fun == "tan")
                        return (tan(degressToRadians(num)))
                    if (fun == "arcsin" && abs(num) <= 1)
                        return (radiansToDegress(asin(num)))
                    if (fun == "arccos" && abs(num) <= 1)
                        return (radiansToDegress(acos(num)))
                    if (fun == "arctan")
                        return (radiansToDegress(atan(num)))
                }
                else {
                    if (fun == "sin")
                        return (sin(num))
                    if (fun == "cos")
                        return (cos(num))
                    if (fun == "tan")
                        return (tan(num))
                    if (fun == "arcsin" && abs(num) <= 1)
                        return (asin(num))
                    if (fun == "arccos" && abs(num) <= 1)
                        return (acos(num))
                    if (fun == "arctan")
                        return (atan(num))
                }

                if (fun == "hypsin")
                    return ((exp(num) - exp(0 - num)) * 0.5)
                if (fun == "hypcos")
                    return ((exp(num) + exp(-num)) * 0.5)
                if (fun == "hyptan")
                    return ((exp(num) - exp(-num)) / (exp(num) + exp(-num)))
                if (fun == "ahypsin" | fun == "hypcos" | fun == "hyptan") {
                    alert("对不起,公式还没有查到!")
                    return (num)
                }

                alert("超出函数定义范围")
                return (num)
            }
        }
        function factorial(n) {
            n = Math.abs(parseInt(n))
            var fac = 1
            for (; n > 0; n -= 1)
                fac *= n
            return (fac)
        }
        function dms(n) {
            var neg = (n < 0)
            with (Math) {
                n = abs(n)
                var d = floor(n)
                var m = floor(60 * (n - d))
                var s = (n - d) * 60 - m
            }
            var dms = d + m / 100 + s * 0.006
            if (neg)
                dms = -dms
            return (dms)
        }
        function deg(n) {
            var neg = (n < 0)
            with (Math) {
                n = abs(n)
                var d = floor(n)
                var m = floor((n - d) * 100)
                var s = (n - d) * 100 - m
            }
            var deg = d + m / 60 + s / 36
            if (neg)
                deg = -deg
            return (deg)
        }
        function degressToRadians(degress) {
            return (degress * Math.PI / 180)
        }
        function radiansToDegress(radians) {
            return (radians * 180 / Math.PI)
        }
        //界面
//-->
    </script>

</head>
<!-- Create By Ianse.com -->
<!--2005.10-->
<body>
    <table width="100%" height="290" border="0" align="center" cellpadding="0" cellspacing="0"
        class="Input">
        <tr>
            <td width="99" align="center" valign="top">
                <style>
                    #Ianse_MenuHeader
                    {
                        cursor: hand;
                        list-style-image: url(/Images/Menu/Icon_H.gif);
                        color: #996666;
                    }
                    #foldinglist
                    {
                        list-style-image: url(/Images/Menu/Icon_L.gif);
                    }
                </style>

                <script language="JavaScript1.2">
document.write("<img style='width:0px;height:0px;' width=0 height=0 src='' id='SetCookieImg' border=0>")
function writeCookie(name,value)
{
 SetCookieImg.src = "/Inc/SetCookie.asp?name="+name+"&value="+value;
}
var Ianse_GoMenuID='';
var head="display:''"
img1=new Image()
img1.src="/Images/Menu/Icon_H.gif"
img2=new Image()
img2.src="/Images/Menu/Icon_K.gif"
function change(){
   if(!document.all)
      return
   if (event.srcElement.id=="Ianse_MenuHeader") {
      var srcIndex = event.srcElement.sourceIndex
      var nested = document.all[srcIndex+1]
      if (nested.style.display=="none") {
         nested.style.display=''
         event.srcElement.style.listStyleImage="url(/Images/Menu/Icon_K.gif)"
      }
      else {
         nested.style.display="none"
         event.srcElement.style.listStyleImage="url(/Images/Menu/Icon_H.gif)"
      }
   }
  if (document.all){
    var nodelength=foldinglist.length-1
    var nodes=new Array(nodelength)
    var openones=''
  }
  for (i=0 ; i <= nodelength ; i++){
  if (foldinglist[i].style.display=='')
     openones=openones + i + " "
  }
  writeCookie("IanseSuperMenu",openones);
 
}
document.onclick=change
//-->
                </script>

                <script language="JavaScript1.2">
               
if (Ianse_GoMenuID != ''){
  var openresults=Ianse_GoMenuID.split(" ")
  for (i=0 ; i < openresults.length ; i++){
    foldinglist[openresults[i]].style.display=''
    document.all[foldinglist[openresults[i]].sourceIndex - 1].style.listStyleImage="url(/Images/Menu/Icon_K.gif)"
  }
}
                </script>

            </td>
        </tr>
        <tr>
            <td>
            </td>
        </tr>
    </table>
    </td>
    <td align="center" valign="top">
        <br />
        <form name="calc">
        <table border="3" height="250" width="500" style="border-width: 5px; font-family: '宋体', 'Arial Narrow', 'Times New Roman';
            font-size: 9pt; font-color: #000000;">
            <tbody>
                <tr>
                    <td height="50">
                        <table width="500">
                            <tbody>
                                <tr>
                                    <td>
                                    </td>
                                    <td align="center">
                                        <input name="display" readonly size="40" value="0" style="color: #000000; font-size: 18px;
                                            height: 30px;">
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td>
                        <table width="500">
                            <tbody>
                                <tr>
                                    <td width="290">
                                        <input name="carry" onclick="inputChangCarry(16)" type="radio">
                                        十六进制
                                        <input checked name="carry" onclick="inputChangCarry(10)" type="radio">
                                        十进制
                                        <input name="carry" onclick="inputChangCarry(8)" type="radio">
                                        八进制
                                        <input name="carry" onclick="inputChangCarry(2)" type="radio">
                                        二进制
                                    </td>
                                    <td width="44">
                                    </td>
                                    <td width="150">
                                        <input checked name="angle" onclick="inputChangAngle('d')" type="radio" value="d">
                                        角度制
                                        <input name="angle" onclick="inputChangAngle('r')" type="radio" value="r">
                                        弧度制
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <table width="500">
                            <tbody>
                                <tr>
                                    <td width="170">
                                        <input name="shiftf" onclick="inputshift()" type="checkbox">上档功能
                                        <input name="hypf" onclick="inputshift()" type="checkbox">双曲函数
                                    </td>
                                    <td>
                                        <input name="bracket" readonly size="3" style="background-color: lightgrey">
                                        <input name="memory" readonly size="3" style="background-color: lightgrey">
                                        <input name="operator" readonly size="3" style="background-color: lightgrey">
                                    </td>
                                    <td width="183" align="center">
                                        <input onclick="backspace()" style="color: red" type="button" value="退格">
                                        <input onclick="document.calc.display.value = 0 " style="color: red" type="button"
                                            value="清除">
                                        <input onclick="clearall()" style="color: red" type="button" value="复位 CE">
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        <table width="500">
                            <tbody>
                                <tr>
                                    <td>
                                        <table>
                                            <tbody>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="pi" onclick="inputfunction('pi','pi')" style="color: blue; width: 40px;"
                                                            type="button" value=" PI ">
                                                    </td>
                                                    <td>
                                                        <input name="e" onclick="inputfunction('e','e')" style="color: blue; width: 40px;"
                                                            type="button" value=" E ">
                                                    </td>
                                                    <td>
                                                        <input name="bt" onclick="inputfunction('dms','deg')" style="color: #ff00ff; width: 40px;"
                                                            type="button" value="d.ms">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input onclick="addbracket()" style="color: #ff00ff; width: 40px;" type="button"
                                                            value=" (  ">
                                                    </td>
                                                    <td>
                                                        <input onclick="disbracket()" style="color: #ff00ff; width: 40px;" type="button"
                                                            value=" )  ">
                                                    </td>
                                                    <td>
                                                        <input name="ln" onclick="inputfunction('ln','exp')" style="color: #ff00ff; width: 40px;"
                                                            type="button" value=" ln ">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="sin" onclick="inputtrig('sin','arcsin','hypsin','ahypsin')" style="color: #ff00ff;
                                                            width: 40px;" type="button" value="sin">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('^',7)" style="color: #ff00ff; width: 40px;" type="button"
                                                            value="x^y">
                                                    </td>
                                                    <td>
                                                        <input name="log" onclick="inputfunction('log','expdec')" style="color: #ff00ff;
                                                            width: 40px;" type="button" value="log">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="cos" onclick="inputtrig('cos','arccos','hypcos','ahypcos')" style="color: #ff00ff;
                                                            width: 40px;" type="button" value="cos">
                                                    </td>
                                                    <td>
                                                        <input name="cube" onclick="inputfunction('cube','cubt')" style="color: #ff00ff;
                                                            width: 40px;" type="button" value="x^3">
                                                    </td>
                                                    <td>
                                                        <input onclick="inputfunction('!','!')" style="color: #ff00ff; width: 40px;" type="button"
                                                            value=" n! ">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="tan" onclick="inputtrig('tan','arctan','hyptan','ahyptan')" style="color: #ff00ff;
                                                            width: 40px;" type="button" value="tan">
                                                    </td>
                                                    <td>
                                                        <input name="sqr" onclick="inputfunction('sqr','sqrt')" style="color: #ff00ff; width: 40px;"
                                                            type="button" value="x^2">
                                                    </td>
                                                    <td>
                                                        <input onclick="inputfunction('recip','recip')" style="color: #ff00ff; width: 40px;"
                                                            type="button" value="1/x">
                                                    </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </td>
                                    <td width="30">
                                    </td>
                                    <td>
                                        <table>
                                            <tbody>
                                                <tr>
                                                    <td>
                                                        <input onclick="putmemory()" style="color: red" type="button" value="储存">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <input onclick="getmemory()" style="color: red" type="button" value="取存">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <input onclick="addmemory()" style="color: red" type="button" value="累存">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <input onclick="multimemory()" style="color: red" type="button" value="积存">
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td height="33">
                                                        <input onclick="clearmemory()" style="color: red" type="button" value="清存">
                                                    </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </td>
                                    <td width="30">
                                    </td>
                                    <td>
                                        <table>
                                            <tbody>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="k7" onclick="inputkey('7')" style="color: blue; width: 40px;" type="button"
                                                            value=" 7 ">
                                                    </td>
                                                    <td>
                                                        <input name="k8" onclick="inputkey('8')" style="color: blue; width: 40px;" type="button"
                                                            value=" 8 ">
                                                    </td>
                                                    <td>
                                                        <input name="k9" onclick="inputkey('9')" style="color: blue; width: 40px;" type="button"
                                                            value=" 9 ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('/',6)" style="color: red; width: 40px;" type="button"
                                                            value=" / ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('%',6)" style="color: red" type="button" value="取余">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('&',3)" style="color: red" type="button" value=" 与 ">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input name="k4" onclick="inputkey('4')" style="color: blue; width: 40px;" type="button"
                                                            value=" 4 ">
                                                    </td>
                                                    <td>
                                                        <input name="k5" onclick="inputkey('5')" style="color: blue; width: 40px;" type="button"
                                                            value=" 5 ">
                                                    </td>
                                                    <td>
                                                        <input name="k6" onclick="inputkey('6')" style="color: blue; width: 40px;" type="button"
                                                            value=" 6 ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('*',6)" style="color: red; width: 40px;" type="button"
                                                            value=" * ">
                                                    </td>
                                                    <td>
                                                        <input name="floor" onclick="inputfunction('floor','deci')" style="color: red" type="button"
                                                            value="取整">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('|',1)" style="color: red" type="button" value=" 或 ">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input onclick="inputkey('1')" style="color: blue; width: 40px;" type="button" value=" 1 ">
                                                    </td>
                                                    <td>
                                                        <input name="k2" onclick="inputkey('2')" style="color: blue; width: 40px;" type="button"
                                                            value=" 2 ">
                                                    </td>
                                                    <td>
                                                        <input name="k3" onclick="inputkey('3')" style="color: blue; width: 40px;" type="button"
                                                            value=" 3 ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('-',5)" style="color: red; width: 40px;" type="button"
                                                            value=" - ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('<',4)" style="color: red" type="button" value="左移">
                                                    </td>
                                                    <td>
                                                        <input onclick="inputfunction('~','~')" style="color: red" type="button" value=" 非 ">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input onclick="inputkey('0')" style="color: blue; width: 40px;" type="button" value=" 0 ">
                                                    </td>
                                                    <td>
                                                        <input onclick="changeSign()" style="color: blue; width: 40px;" type="button" value="+/-">
                                                    </td>
                                                    <td>
                                                        <input name="kp" onclick="inputkey('.')" style="color: blue; width: 40px;" type="button"
                                                            value=" . ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('+',5)" style="color: red; width: 40px;" type="button"
                                                            value=" + ">
                                                    </td>
                                                    <td>
                                                        <input onclick="result()" style="color: red" type="button" value=" = ">
                                                    </td>
                                                    <td>
                                                        <input onclick="operation('x',2)" style="color: red" type="button" value="异或">
                                                    </td>
                                                </tr>
                                                <tr align="middle">
                                                    <td>
                                                        <input disabled name="ka" onclick="inputkey('a')" style="color: blue" type="button"
                                                            value=" A ">
                                                    </td>
                                                    <td>
                                                        <input disabled name="kb" onclick="inputkey('b')" style="color: blue" type="button"
                                                            value=" B ">
                                                    </td>
                                                    <td>
                                                        <input disabled name="kc" onclick="inputkey('c')" style="color: blue" type="button"
                                                            value=" C ">
                                                    </td>
                                                    <td>
                                                        <input disabled name="kd" onclick="inputkey('d')" style="color: blue" type="button"
                                                            value=" D ">
                                                    </td>
                                                    <td>
                                                        <input disabled name="ke" onclick="inputkey('e')" style="color: blue" type="button"
                                                            value=" E ">
                                                    </td>
                                                    <td>
                                                        <input disabled name="kf" onclick="inputkey('f')" style="color: blue" type="button"
                                                            value=" F ">
                                                    </td>
                                                </tr>
                                            </tbody>
                                        </table>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
        </form>
        <br />
        <!-- 计算器表格完 -->

        <script language="javascript">
            var results = '';
            var previouskey = '';
            var re = /(//|/*|/+|-)/;
            var re2 = /(//|/*|/+|-){2}$/;
            var re3 = /.+(//|/*|/+|-).+/;
            var re4 = //d|/./;
            var re5 = /^[^///*/+].+/d$/;
            var re6 = //./;
            function calculate(n) {
                if (n.match(re4) && previouskey == "=") results = '';
                 if (result.innerText.match(re3) && n.match(re)) {
                     if (!results.match(re5)) {
                         result.innerText = "Error!";
                         return
                     }
                     results = eval(results);
                     if (results.toString().length >= 12 && results.toString().match(re6))
                    results = results.toString().substring(0, 12)
                    result.innerText = results
                }
                results += n;
                if (results.match(re2))
                results = results.substring(0, results.length - 2) + results.charAt(results.length - 1)
                result.innerText = results
            } function calculateresult() {
            if (!results.match(re5)) {
                result.innerText = "Error!";
                return
            }
            results = eval(results);
           if (results.toString().length >= 12 && results.toString().match(re6))
                    results = results.toString().substring(0, 12)
                result.innerText = results
            }
            function pn() {
                if (result.innerText.charAt(0) != '-')
                    result.innerText = results = '-' + result.innerText;
                else if (result.innerText.charAt(0) == '-')
                    result.innerText = results = result.innerText * (-1)
            }
            function k3(n, m) {
                if (event.keyCode != 13)
                    return;
                    a = n.value;
                    if (a == "") return;
                    try {
                        text_32[m].value = eval(a)
                    } catch (e) {
                    M("请输入正确的计算式子!")
                }
              }
            dt3 = '在框中输入“计算式子”  然后按“回车键”显示计算结果。'
        </script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值