Javascript 如何识别数字是否为整数?

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

这是一个处理javascript和var类型标识的脚本。你在下面看到的是我正在做的一个小项目。应该计算二次方程的x1和x2值。我遇到的问题是,我无法让程序识别结果是否为整数形式

这是我的密码:

<!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;
}