[英]JS calculator bug
PS 新來的 js,我在 js 中制作了一個類似 ios 的計算器,其中基本功能是用戶輸入存儲在變量中的第一個數字,屏幕被清除,然后用戶輸入第二個數字,該數字再次需要存儲在一個多變的。 我目前在存儲第二個數字時遇到問題。
const getnum = () => {
let firstnum = parseFloat(ans.innerText);
console.log("firstnum" + "=" + firstnum);
};
從互聯網上復制這個以獲得第二個數字
operationperf = (operation) => {
if (!numinmem) {
numinmem = parseFloat(ans.textContent);
operatorinmem = operation;
ans.textContent = "";
return;
}
operatorinmem = operation;
ans.textContent = getResultOfOperationAsStr();
ans.textContent = "";
};
但這會導致兩個變量具有相同的值,因此如果我執行 50+78 計算器執行 50+50
工作演示: https : //megahedron69.github.io/ios-Calculator/ javascript 文件:https ://github.com/Megahedron69/ios-Calculator/blob/main/app.js
首先,您的numinmem
變量似乎沒有在operationperf
函數的范圍之外用於任何進一步處理。
此外,在您的以下功能中:
const getResultOfOperationAsStr = () => {
const currentValueNum = parseFloat(ans.textContent);
const valueNumInMemory = parseFloat(ans.textContent);
let newValueNum;
if (operatorinmem === "addition") {
newValueNum = valueNumInMemory + currentValueNum;
} else if (operatorinmem === "subtraction") {
newValueNum = valueNumInMemory - currentValueNum;
} else if (operatorinmem === "multiplication") {
newValueNum = valueNumInMemory * currentValueNum;
} else if (operatorinmem === "division") {
newValueNum = valueNumInMemory / currentValueNum;
}
return newValueNum.toString();
};
您似乎在操作的雙方都使用ans
變量中存儲的元素的當前值(例如ansValueAsFloat + ansValueAsFloat
),因此會產生不希望的行為。
我的建議是將最終操作中涉及的任何變量設置為numinmem
的值, numinmem
設置為ans
的當前值。
希望我說清楚了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.