为什么我只能在Javascript计算器中看到减号运算符中的NaN?
我最近做了一个计算器,它工作正常,直到我计算负号运算符的结果时NaN开始出现。我正在测试代码,结果很好,然后我重新加载了选项卡,突然NaN开始出现在减号操作符中。请告诉我为什么会发生这种情况以及如何解决它为什么我只能在Javascript计算器中看到减号运算符中的NaN?,javascript,nan,Javascript,Nan,我最近做了一个计算器,它工作正常,直到我计算负号运算符的结果时NaN开始出现。我正在测试代码,结果很好,然后我重新加载了选项卡,突然NaN开始出现在减号操作符中。请告诉我为什么会发生这种情况以及如何解决它 功能btn001(){ var firstNumber1=firstNumber.value; var运算符1=运算符.value; var secondNumber1=secondNumber.value; 如果(运算符1==“-”){ document.getElementById(“结
功能btn001(){
var firstNumber1=firstNumber.value;
var运算符1=运算符.value;
var secondNumber1=secondNumber.value;
如果(运算符1==“-”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1-secondNumber1;
}
else if(运算符1==“+”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1+secondNumber1;
}
else if(运算符1==“/”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1/secondNumber1;
}
else if(运算符1==“*”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1*secondNumber1;
}
否则如果(运算符1==“Ũ”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1*secondNumber1;
}
否则如果(运算符1==“ũ”){
document.getElementById(“结果”).innerHTML=“=”+firstNumber1/secondNumber1;
}
否则{
document.getElementById(“结果”).innerHTML=“错误414!”+“无效的运算符或值”;
}
}
正文{
背景颜色:绿色;
}
.接线员{
宽度:160px;
高度:60px;
字体大小:40px;
}
.按钮{
字体大小:40px;
背景色:白色;
}
.按钮:悬停{
字体大小:41px;
背景颜色:黄色;
}
.价值观{
高度:60px;
宽度:760px;
字体大小:40px;
}
.结果{
宽度:1300px;
高度:190px;
边框:5px纯黄色;
文本对齐:居中;
边界半径:80px;
颜色:白色;
字体大小:90px;
}
算算吧!
计算结果
0
由于变量自动转换为int,并且在求和之前执行此操作,/
和*
运算符正在工作
当您向字符串添加任何内容时,其余内容将转换为字符串,因此仅将其转换为int是不够的(因为您将有类似于“=”+10+20
的内容,它们将在中转换“=”+“10”+20=“=10”+“20”
,或者如果是-
,则将是“=”+“10”-20
和“=10”-20仍然不是一个数字
为了使其工作,请转换数字并使用括号。例如:
function btn001() {
var firstNumber1 = +firstNumber.value;
var operator1 = operator.value;
var secondNumber1 = +secondNumber.value;
if (operator1 == "-") {
document.getElementById("result").innerHTML = "=" + (firstNumber1- secondNumber1);
}
else if (operator1 == "+") {
document.getElementById("result").innerHTML = "=" (firstNumber1+secondNumber1);
}
...
您还可以从中替换+
var-firstNumber1=+firstNumber1.value;
和var-secondNumber1=+secondNumber1.value;
使用parseInt
函数(作为另一个响应,它也可以很好地工作)。但是您将需要参数设置。“=”+firstNumber1
在操作发生之前被连接。在语句周围添加一个括号,并将其转换为前面的数字:“=”+(+firstNumber1-+secondNumber1)
此外,使用文档.getElementById(“firstNumber”).value
而不是直接使用命名元素firstNumber.value