2017-04-26 1 views
0

ボタンをクリックして^をクリックして別のボタンをクリックすると、最初の数値が2番目の数値に上がります。数値を数値にすると問題が発生します

コード: https://jsfiddle.net/fqdxkL4y/3/

それはちょうど結果を示すのではなく、そこに二番目の数字を維持します。ここでは

$(document).ready(function() { 
    var testNumLength = function(number) { 
    if (number.length > 9) { 
     totaldiv.text(number.substr(number.length - 9, 9)); 

    } 
    }; 
    var number = ""; 
    var newnumber = ""; 
    var operator = ""; 
    var totaldiv = $("#total"); 
    totaldiv.text("0"); 
    $("#numbers a").not("#clear,#clearall").click(function() { 
    number += $(this).text(); 
    totaldiv.text(number); 
    testNumLength(number); 
    }); 
    $("#operators a, #side a").not("#equals, #decimal").click(function() { 
    operator = $(this).text(); 
    newnumber = number; 
    number = ""; 
    totaldiv.text("0"); 
    if ($(this).attr('id') === "sqrt") { 
     operator = "sqrt"; 
     $("#equals").click(); 
    } 
    }); 
    $("#clear,#clearall").click(function() { 
    number = ""; 
    totaldiv.text("0"); 
    if ($(this).attr("id") === "clearall") { 
     newnumber = ""; 
    } 
    }); 
    //Add your last .click() here! 
    $("#equals").click(function() { 
    if (operator === "+") { 
     number = (parseInt(number, 10) + parseInt(newnumber, 10)).toString(10); 
    } else if (operator === "-") { 
     number = (parseInt(newnumber, 10) - parseInt(number, 10)).toString(10); 
    } else if (operator === "÷") { 
     number = (parseInt(newnumber, 10)/parseInt(number, 10)).toString(10); 
    } else if (operator === "×") { 
     number = (parseInt(newnumber, 10) * parseInt(number, 10)).toString(10); 
    } else if (operator === "sq") { 
     number = (Math.pow(parseInt(newnumber, 10), parseInt(number, 10))).toString(10); 
    } else if (operator === "sqrt") { 
     number = newnumber; 
     number = Math.sqrt(parseFloat(number, 10)).toString(10); 
    } 
    totaldiv.text(number); 
    testNumLength(number); 
    number = ""; 
    newnumber = ""; 
    }); 
    $('#decimal').click(function() { 
    var numOfDecs = 0; 
    for (var i = 0; i < number.length; i++) { 
     if (number[i] === ".") { 
     totaldiv.text(number[i]); 
     } 
    } 
    if (numOfDecs === 0) { 
     number.append('.'); 
     totaldiv.text(number); 
     testNumLengh(number); 
    } 
    }) 
}); 

はフィドルです。

答えて

1

"^"の代わりに指数ボタンのidを入れたようです。

​​

これに:この

変更

} else if (operator === "^") { 
関連する問題