这是一个处理javascript和var类型标识的脚本。你在下面看到的是我正在做的一个小项目。它应该计算二次方程的x1和x2值。我遇到的问题是,我无法让程序识别结果是否为INTEGER格式,否则
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="matrix_style.css">
<title>JS Calculator</title>
<script language="javascript" type="text/javascript">
function result(){
//first the values from table one are stored in the bellow variables:
a=Number(document.table_1.number1.value);
b=Number(document.table_1.number2.value);
c=Number(document.table_1.number3.value);
// then they are proccessed and stored in the ans1_1 and ans_2 variables:
ans_1=-b + Math.sqrt(Math.pow(b, 2) - (4*a*c));
ans_2=-b - Math.sqrt(Math.pow(b, 2) - (4*a*c));
ans_3= "no solution"
// here is my problem, I can't seem to be able to determine if the variables are integers meaning ... -2, -1, 0, 1, 2, ...
// this part is suppose to dispaly the results only if the results are integers and else display "no solution"
if(return ans_1%1===0 && return ans_2%===0 )
{
document.calculator.total_1.value=ans_1;
document.calculator.total_2.value=ans_2;
}
else
{
document.calculator.total_3.value=ans_3;
}
}
</script>
</head>
<body>
<!--First the user inserts the a b and c values into the table bellow-->
<table class="table_1">
<form name="table_1" >
<tr>
<th>Insert your equation:</th>
<th></th>
<th></th>
</tr>
<tr>
<td><span id="A" contenteditable><input type="text" name="number1" ><br></span></td>
<td><span id="B" contenteditable><input type="text" name="number2" ><br></span></td>
<td><span id="C" contenteditable><input type="text" name="number3" ><br></span></td>
</tr>
</form>
</table>
<!--The results are suppose to display in table bellow: -->
<table class="table_result">
<form name="calculator">
<tr>
<th>Result:</th>
<th></th>
</tr>
<tr>
<td><span id="A_ans" contenteditable><input type="text" name="total_1" ><br></span></td>
<td><span id="B_ans" contenteditable><input type="text" name="total_2" ><br></span></td>
</tr>
<tr>
<td><span id="C_ans" contenteditable><input type="text" name="total_3" ><br></span></td>
</tr>
<input type="button" value="result" id="submit" onclick="javascript:result();">
</form>
</table>
</body>
</html>
答案 0 :(得分:4)
if(return ans_1%1===0 && return ans_2%===0 )
是语法错误,应该是
if(ans_1%1===0 && ans_2%1===0 )
和检查ans_2
缺少模数操作数。
此外,您还要将减法传递给Math.pow()
,这可能是否定的(导致NaN
)。
答案 1 :(得分:0)
Javascript中没有“整数”,即整数,只有Number
s。
检查它们是否为整数的最简单方法是round它们并与原始值进行比较:
if(Math.round(ans_1) === ans_1 && Math.round(ans_2) === ans_2)
{
document.calculator.total_1.value = ans_1;
document.calculator.total_2.value = ans_2;
}
else
{
document.calculator.total_3.value = ans_3;
}
答案 2 :(得分:0)
除以1时检查余数:
function isInt(n) {
return n % 1 === 0;
}
如果你不知道参数是一个数字 -
function isInt(n){
return Number(n)===n && n%1===0;
}
参考此链接
is_int() =&gt;检查变量类型是否为Integer以及是否为Integer 内容是整数
is_float() =&gt;检查变量类型是否为Float及其是否为 内容是Float