我制作一个 javascript 计算器已经有一段时间了,我可以获得所有基本函数和 pow() 函数,但我无法让它执行 Math.sqrt() 函数。过去几天我一直遇到这个问题。这是我的代码,提前致谢:
function calc()
{
var D = "";
var A = document.getElementById("num1").value;
var B = document.getElementById("op").value;
var C = document.getElementById("num2").value;
X = parseInt(A);
S = 2
var Z = "If you're seeing this, that means that the code isn't working!!"
D = eval(A + B + C);
if (B == "%")
{
D = ""
Z = Math.sqrt(X)*1
}
else if (B == "^")
{
D = ""
Z = Math.pow(X, C)
}
else if (B == "^2")
{
D = ""
Z = Math.pow(X, S)
}
else if (B == "")
{
D = "No Operator"
Z = ""
}
document.getElementById("result").value = D;
document.getElementById("sqrt-result").value = Z;
return false;
}
最佳答案
我刚刚测试了它,你的代码工作正常。我的假设是,您正在尝试使用平方根功能,而不是在 num2 中放入任何内容,这对于计算数字的平方根来说似乎很自然。但是,如果您打开错误控制台,您会发现 eval
不喜欢在您尝试在运算符之后不进行任何操作的情况下计算某些内容。我的建议是将 eval
移到 if
下方,以便仅在需要时使用它。
function calc()
{
var D = "";
var A = document.getElementById("num1").value;
var B = document.getElementById("op").value;
var C = document.getElementById("num2").value;
X = parseInt(A);
S = 2
var Z = "If you're seeing this, that means that the code isn't working!!"
if (B == "%")
{
Z = Math.sqrt(X)*1
}
else if (B == "^")
{
Z = Math.pow(X, C)
}
else if (B == "^2")
{
Z = Math.pow(X, S)
}
else if (B == "")
{
D = "No Operator"
Z = ""
} else {
// Only do this if not doing any of the above calculations
D = eval(A + B + C);
}
document.getElementById("result").value = D;
document.getElementById("sqrt-result").value = Z;
return false;
}
关于javascript - Javascript 计算器中的平方根未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16590287/