[英]Subtraction and addition results in calculator are incorrect
我正在使用HTML
和Javascript
創建一個 for 循環計算器,我嘗試了我所知道的一切。 問題是減法的結果不正確,與加法相同。
這是功能
<script>
var num1 = 0, num2 = 0, resultt = 1, resultt = 1;
var init = 0, inc = 0, imput = 0;
function gen() {
imput = parseInt(document.getElementById("txt1").value);
for(init = 1; init <= imput; init++) {
document.write("<input type='text' value='" + init + "' id='" + init + "'><br>");
}
document.write("<input type='button' value='compute'onclick='computee();'><div style='border: 1px solid black;' id='displayy'></div></br>");
document.write("<input type='button' value='subtract'onclick='subtractt();'><div style='border: 1px solid black;' id='displayy'></div></br>");
document.write("<input type='button' value='division'onclick='divisionn();'><div style='border: 1px solid black;' id='displayy'></div></br>");
document.write("<input type='button' value='multiplication'onclick='multiplicationn();'><div style='border: 1px solid black;' id='displayy'></div></br>");
}
這是另一半
function computee() {
var imputt = "";
for(inc = 1; inc <= init - 1; inc++) {
resultt = resultt + parseInt(document.getElementById(inc).value);
}
document.getElementById("displayy").innerHTML = resultt;
}
function subtractt() {
var imputt = "";
for(inc = 1; inc <= init - 1; inc++) {
resultt = resultt - parseInt(document.getElementById(inc).value);
}
document.getElementById("displayy").innerHTML = resultt;
}
function divisionn() {
var imputt = "";
for(inc = 1; inc <= init - 1; inc++) {
resultt = resultt % parseInt(document.getElementById(inc).value);
}
document.getElementById("displayy").innerHTML = resultt;
}
function multiplicationn() {
var imputt = "";
for(inc = 1; inc <= init - 1; inc++) {
resultt = resultt * parseInt(document.getElementById(inc).value);
}
document.getElementById("displayy").innerHTML = resultt;
}
</script>
</head>
<body>
<input type="number" id="txt1" placeholder="enter number of textboxes" onkeyup="solve();">
<input type="button" value="generate" onclick="gen()">
</body>
</html>
1- 您的 div 輸出具有相同的 ID,並且 2- 乘法和除法中的ParseInt
必須是parseFloat
var num1 = 0, num2 = 0, resultt = 1, resultt = 1; var init = 0, inc = 0, imput = 0; function gen() { imput = parseInt(document.getElementById("txt1").value); for(init = 1; init <= imput; init++) { document.write("<input type='text' value='" + init + "' id='" + init + "'><br>"); } document.write("<input type='button' value='compute'onclick='computee();'><div style='border: 1px solid black;' id='displayy1'></div></br>"); document.write("<input type='button' value='subtract'onclick='subtractt();'><div style='border: 1px solid black;' id='displayy2'></div></br>"); document.write("<input type='button' value='division'onclick='divisionn();'><div style='border: 1px solid black;' id='displayy3'></div></br>"); document.write("<input type='button' value='multiplication'onclick='multiplicationn();'><div style='border: 1px solid black;' id='displayy4'></div></br>"); } function computee() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt + parseInt(document.getElementById(inc).value); } document.getElementById("displayy1").innerHTML = resultt; } function subtractt() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt - parseInt(document.getElementById(inc).value); } document.getElementById("displayy2").innerHTML = resultt; } function divisionn() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt / parseFloat(document.getElementById(inc).value); } document.getElementById("displayy3").innerHTML = resultt; } function multiplicationn() { var imputt = ""; for(inc = 1; inc <= init - 1; inc++) { resultt = resultt * parseFloat(document.getElementById(inc).value); } document.getElementById("displayy4").innerHTML = resultt; }
<input type="number" id="txt1" placeholder="enter number of textboxes"> <input type="button" value="generate" onclick="gen()">
我至少認為我已經做了你想要的..
請繼續看一看:
const input = document.getElementById('input'); input.addEventListener('input', e => calculateStuff(e.target.value)); function calculateStuff(numb) { let addition = 1; let subtraction = 1; let multiplication = 1; let division = 1; for(let i = 2; i <= parseInt(numb); i++) { addition += i; subtraction -= i; multiplication *= i; division /= i; } console.log('// *********************** //'); console.log('Addition:', addition); console.log('Subtraction:', subtraction); console.log('Multiplicaton:', multiplication); console.log('Division:', division); console.log('// *********************** //'); }
Input number: <input type="number" id="input" />
我為每個操作預先分配了 1,否則我會將零除以 1 等等......這就是循環從 2 開始的原因。否則代碼是不言自明的,至少在我看來,所以如果你需要一些解釋讓我知道:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.