Javascript 如何识别数字是否为整数?
这是一个处理javascript和var类型标识的脚本。你在下面看到的是我正在做的一个小项目。应该计算二次方程的x1和x2值。我遇到的问题是,我无法让程序识别结果是否为整数形式 这是我的密码:Javascript 如何识别数字是否为整数?,javascript,Javascript,这是一个处理javascript和var类型标识的脚本。你在下面看到的是我正在做的一个小项目。应该计算二次方程的x1和x2值。我遇到的问题是,我无法让程序识别结果是否为整数形式 这是我的密码: <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="matrix_style.css"> <title>JS Calculator</titl
<!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>
JS计算器
函数结果(){
//首先,表1中的值存储在以下变量中:
a=编号(文件表1.编号1.值);
b=编号(文件表1.编号2.值);
c=编号(文件表1.编号3.值);
//然后将其处理并存储在ans1_1和ans_2变量中:
ansu 1=-b+Math.sqrt(Math.pow(b,2)-(4*a*c));
ansu 2=-b-Math.sqrt(Math.pow(b,2)-(4*a*c));
ans_3=“没有解决方案”
//这是我的问题,我似乎无法确定变量是否是整数,意思是…-2,-1,0,1,2。。。
//假设此部分仅在结果为整数时显示结果,否则显示“无解”
如果(返回ANSU 1%1==0&&返回ANSU 2%==0)
{
document.calculator.total_1.value=ans_1;
document.calculator.total_2.value=ans_2;
}
其他的
{
document.calculator.total_3.value=ans_3;
}
}
插入您的方程式:
结果:
如果(return ansu 1%1==0&&return ansu 2%==0)是一个语法错误,那么应该是
if(ans_1%1===0 && ans_2%1===0 )
那里的返回不正确,对ans_2的检查缺少模数操作数
此外,您正在将减法传递给
Math.pow()
,这可能是负数(导致NaN
)。在Javascript中没有“整数”,也就是整数
检查它们是否为整数的最简单方法是将它们与原始值进行比较:
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;
}
除以1时检查余数:
如果你不知道这个论点是一个数字-
请参阅此链接
=>检查变量类型是否为整数,以及其
内容是整数
=>检查变量类型是否为浮点型,以及其
内容是浮动的
仍然没有回答。它只显示错误消息。如果这些数字不正确,那就说明了这一点integers@CashVai这可能是因为传递的是平方根负数,结果是
NaN
。你确定你的测试方程可以求解吗?它确实适用于足够的数字,例如1,2,3→ 没有回答,1,-5,6→ 结果同样,你解方程的数学缺少了2a的除法实际上,CashVai的方法也是检查整数的正确方法感谢accept,但outlyer的答案用更好的解释修复了你原来的语法错误,所以我认为你应该接受他的方法。
function isInt(n) {
return n % 1 === 0;
}
function isInt(n){
return Number(n)===n && n%1===0;
}