JS编写的计算器 如何实现 连续加减乘除四则运算 求大神指点 急帮我再看看小数点的问题 1C
<html>
<head>
    <title>JiSuanQi</title>
    <!-- 移动层外部JS文件 -->
    <script src="src/js/yidong.js"></script>

    <script>
        var oper = ""
        var isClickOper = false//是否点击了运算符
        var num = 0;
        var isClickPoint = false;//是否点击了小数点
        //输入数字 
        function addNum(n){
            var nowNum = myform.num.value;
            if(nowNum == "0"||isClickOper){//直接赋值
                myform.num.value = n;
                isClickOper = false;
            }else if(myform.num.value.length<9){//限制文本框按键输入数字长度最多9个
                //myform.num.value = myform.num.value + n;//连接赋值
                myform.num.value += n  //也可以这样写连接赋值
            }
        }
        //添加运算符
        function setOper(op){
            oper = op;
            num = myform.num.value*1;
            isClickOper = true;
        }

        //得到结果
        function getCount(){
            if(oper != ""){
                if(oper == "+"){
                    num = num + myform.num.value*1
                }else if(oper == "-"){
                    num = num - myform.num.value*1
                }else if(oper == "*"){
                    num = num * myform.num.value*1
                }else if(oper == "/"){
                            if(myform.num.value == 0){
                            num ="除数不能为0"}else{
                            num = num / myform.num.value*1
                            }
                }else if(oper == "%"){
                    num = num % myform.num.value*1
                }
                myform.num.value = num;
            }
        }

        //添加小数点
        function addPoint(){
            if(!isClickPoint){//判断是否点击过小数点
            myform.num.value += ".";
                isClickPoint = true;
            }
        }
        //清楚
        function cc(){
            myform.num.value = "0";
            isClickOper = false;
            isClickPoint = false;
            num = 0;
            oper="0";   
        }
        //删除
        function del(){
            var nowNum = myform.num.value;
            if(nowNum.length==1){
                myform.num.value = "0";
            }else{
                myform.num.value = nowNum.substr(0,nowNum.length-1)
            }
        }

    </script>
    <!--鼠标进入默认按下放开样式-->
    <style>
    #ceng{width:440px;height:500px;background:#323850;}
    .jr{background-Image:url('jr.png')}
    .mr{background-Image:url('mr.png')}
    .ax{background-Image:url('ax.png')}
    .fk{background-Image:url('fk.png')}
    table{position:relative;top:30px;}

    </style>
</head>

<body bgcolor="green">
    <center>
    <form id="myform">
    <div onmousemove="mouseMove()" >
    <input type="button" value="打开" onclick="ceng.style.display='block'">
    <input type="button" value="关闭" onclick="ceng.style.display='none'">
    <div onmousedown="mouseDown()" onmouseup="mouseUp()" id="ceng" style="top:80px;left:300px;position:absolute;display:none;cursor:wait"><font size="7">简易计算器</font>
        <table border="1" width="422px" height="360px" align="center">
            <tr>
                <td colspan="4">
                    <input id="num" type="text" onfocus="blur()" value="0"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="bt1" type="button" value="1" onclick="addNum(1)"/>
                </td>
                <td>
                    <input id="bt2" type="button" value="2" onclick="addNum(2)"/>
                </td>
                <td>
                    <input id="bt3" type="button" value="3" onclick="addNum(3)"/>
                </td>
                <td>
                    <input id="bt10" type="button" value="+" onclick="setOper('+')"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="bt4" type="button" value="4" onclick="addNum(4)"/>
                </td>
                <td>
                    <input id="bt5" type="button" value="5" onclick="addNum(5)"/>
                </td>
                <td>
                    <input id="bt6" type="button" value="6" onclick="addNum(6)"/>
                </td>
                <td>
                    <input id="bt11" type="button" value="-" onclick="setOper('-')"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="bt7" type="button" value="7" onclick="addNum(7)"/>
                </td>
                <td>
                    <input id="bt8" type="button" value="8" onclick="addNum(8)"/>
                </td>
                <td>
                    <input id="bt9" type="button" value="9" onclick="addNum(9)"/>
                </td>
                <td>
                    <input id="bt12" type="button" value="*" onclick="setOper('*')"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="bt0" type="button" value="0" onclick="addNum(0)"/>
                </td>
                <td>
                    <input id="bt13" type="button" value="." onclick="addPoint()"/>
                </td>
                <td>
                    <input id="bt14" type="button" value="%" onclick="setOper('%')"/>
                </td>
                <td>
                    <input id="bt15" type="button" value="/" onclick="setOper('/')"/>
                </td>
            </tr>
            <tr>
                <td>
                    <input id="bt16" type="button" value="C" onclick="cc()"/>
                </td>
                <td>
                    <input id="bt17" type="button" value="←" onclick="del()"/>
                </td>
                <td colspan="2">
                    <input id="bt18" type="button" value="=" onclick="getCount()"/>
                </td>

            </tr>
        </table>
    </div>
    </div>
    </form>
    </center>
</body>

<script src="src/js/jsq.js"></script>

6个回答

顺便帮我看看 小数点 我的小数点 有点问题 进行计算第二次点小数点 没作用

求大神 赶快来呀 我是新手 才开始学 帮帮我

还有就是 如果我想给这些按键添加音效 如何调用呢

求大神 赶快来呀 我是新手 才开始学 帮帮我

还有就是 如果我想给这些按键添加音效 如何调用呢

把每一次计算得到的结果保存再进行下一次运算

dongjinwang
dongjinwang 具体怎么做能 在我代码基础上怎么做 我新手 不怎么会 才学几天
4 年多之前 回复

计算乘除时,会有误差,如果不处理,可以乘10的倍数,再对结果除相同的倍数

eval就挺厉害了啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问