我似乎无法考虑如何在不过于复杂的情况下做到这一点。我知道我需要创建一个数组并遍历整个数组并查找运算符(x&/),并且实现BEDMAS也将非常不错。



<div class="display"><input type="text" size="36" id="display" readonly></div>
<div class="keys">

    <p>
        <input type="button" class="button" value="CE" onclick='backspace()'>
        <input type="button" class="button" value="x^2" onclick='power()'>
        <input type="button" class="button" value="%"  onclick='percentage("%")'>
        <input type="button" class="button" value="/" onclick='math("/")'>
    </p>

    <p>
        <input type="button" class="button" value="7" onclick='math("7")'>
        <input type="button" class="button" value="8" onclick='math("8")'>
        <input type="button" class="button" value="9" onclick='math("9")'>
        <input type="button" class="button" value="x" onclick='math("*")'>
    </p>

    <p>
        <input type="button" class="button" value="4" onclick='math("4")'>
        <input type="button" class="button" value="5" onclick='math("5")'>
        <input type="button" class="button" value="6" onclick='math("6")'>
        <input type="button" class="button" value="-" onclick='math("-")'>
    </p>
    <p>
        <input type="button" class="button" value="1" onclick='math("1")'>
        <input type="button" class="button" value="2" onclick='math("2")'>
        <input type="button" class="button" value="3" onclick='math("3")'>
        <input type="button" class="button" value="+" onclick='math("+")'>
    </p>

    <p>
        <input type="button" class="button" value="0" onclick='math("0")'>
        <input type="button" class="button" value="." onclick='math(".")'>
        <input type="button" class="button" value="C" onclick='c("")'>
        <input type="button" class="button" value="=" onclick='e()'>
    </p>



function c(val){
document.getElementById("display").value = val;
}
function math(val){
document.getElementById("display").value += val;
}
function e(){
try{
    c(eval(document.getElementById("display").value))
}
catch(e){
c('Error')
}
}
function backspace() {
var value = document.getElementById("display").value
document.getElementById("display").value = value.substring(0, value.length
-1);
}
function power() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value * value);
}
function percentage() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value / 100);
}

最佳答案

是!不要重新发明这个。使用诸如math.js之类的内置表达式解析器。

math.eval(/* put your concatenated expression here */)

关于javascript - 有没有其他方法可以使计算器在没有eval功能的情况下工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44125094/

10-11 23:32
查看更多