javascript中除法为零的验证
我正在尝试执行计算器操作,根据输入值和运算符显示结果。我对除以0的验证感到震惊,我无法在另一个函数中显示结果。请有人能帮我javascript中除法为零的验证,javascript,Javascript,我正在尝试执行计算器操作,根据输入值和运算符显示结果。我对除以0的验证感到震惊,我无法在另一个函数中显示结果。请有人能帮我 function calCaulation(e) { var x = document.getElementById("first").value; var y = document.getElementById("second").value; var z = document.getElementById("oper").value; var a = ""; if (
function calCaulation(e) {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = document.getElementById("oper").value;
var a = "";
if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
a = "Sum:Please enter the valid Number";
}
if (z == "/" && y == 0) {
a = "Divide By Zero Error";
}
return a;
}
else {
var x = parseFloat(document.getElementById("first").value);
var y = parseFloat(document.getElementById("second").value);
switch (z) {
case ("+"):
a = "Sum:" + ((x + y).toFixed(2));
break;
case ("-"):
a = "Sub:" + ((x - y).toFixed(2));
break;
case ("*"):
a = "Mul:" + ((x * y).toFixed(2));
break;
case ("/"):
a = "Div:" + ((x / y).toFixed(2));
break;
default:
a = "Invalid Operator";
}
return a;
}
}
你有一个括号和
else
子句太多了
请参阅此处以了解一个工作的JSFIDLE。
编辑:此外,错误检查后的return语句将在实际代码执行之前离开函数,我将return a
移动到每个if
中以使其工作
您的新代码:
function calCaulation(e) {
var x = document.getElementById("first").value;
var y = document.getElementById("second").value;
var z = document.getElementById("oper").value;
var a = "";
if ((isNaN(x) || x == "") || (isNaN(y) || y == "")) {
a = "Sum:Please enter the valid Number";
return a;
}
if (z == "/" && y == 0) {
a = "Divide By Zero Error";
return a;
}
var x = parseFloat(x);
var y = parseFloat(y);
switch (z) {
case ("+"):
a = "Sum:" + ((x + y).toFixed(2));
break;
case ("-"):
a = "Sub:" + ((x - y).toFixed(2));
break;
case ("*"):
a = "Mul:" + ((x * y).toFixed(2));
break;
case ("/"):
a = "Div:" + ((x / y).toFixed(2));
break;
default:
a = "Invalid Operator";
}
return a;
}
我看到
返回a后有一个括号实际关闭函数1的代码>语句。在代码中,在else之前关闭花括号“{”是无效的。2.{var x=parseFloat(document.getElementById(“first”).value);var y=parseFloat(document.getElementById(“second”).value);}两次不必要的赋值。空字符串为NaN。因此if((isNaN(x)||x==”)|(isNaN(y)| y==”){
变成if(isNaN(x)| isNaN(y)){
。它实际上不工作,你可以在plunker中查看