gpt4 book ai didi

javascript - JS计算器不会计算两位数

转载 作者:行者123 更新时间:2023-11-28 15:41:37 25 4
gpt4 key购买 nike

我制作了一个简单的 JavaScript 计算器,它在仅使用单位数字时可以工作。但是当您尝试使用两位数数字(例如 12)时,它就不起作用。例如,1+2=3 但 1+12=2,因为它只计算输入的前两个数字。

我相信这是因为我设置了一个数组来收集按下的前 2 个数字,然后对这 2 个数字进行操作,如下面的代码所示。我怎样才能解决这个问题?

var res = add(operands[0], operands[1]);

我的代码:http://jsfiddle.net/r8X9N/

最佳答案

我认为最简单的方法 一种方法是将操作数保留为字符串,直到您准备好使用它们为止。

http://jsfiddle.net/r8X9N/2/

function subtract(a,b) {
return parseInt(a,10) - parseInt(b,10);
}


var operands = ["",""];
var operator;

$(".screen").text("");

$(".num").each(function() {
var selection = $(this).text();
$(this).click(function() {
$(".screen").append(selection);
if (operator) {
operands[1] = operands[1] + selection;
} else {
operands[0] = operands[0] + selection;
}
});
});
<小时/>

另一种选择是根本不存储操作数,而是获取字符串的文本并对其进行评估(在您克服正在使用 eval 的事实之后)

http://jsfiddle.net/r8X9N/3/

$(".screen").text("");

$(".num, .operator").each(function() {
var selection = $(this).text();
$(this).click(function() {
$(".screen").append(selection);
});
});

$(".equals").click(function() {
$(".screen").text(function(i,text){
return eval("(" + text + ")");
});
});

$(".clear").click(function() {
$(".screen").text("");
});

这个版本的优点是它现在支持多个运算符以及任何在 javascript 中工作的运算符,无需任何附加代码(只是添加了一个错误捕获。)http://jsfiddle.net/r8X9N/5/

关于javascript - JS计算器不会计算两位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com