检查两个数字都是正数还是负数

时间:2018-08-10 15:50:25

标签: javascript

我没有找到这个问题的更好的名字...

我想检查两个数字是否都小于0,都为0还是都大于0。 有比这更简单的方法吗?

if (nr0 < 0 && nr1 < 0 || nr0 == 0 && nr1 == 0 || nr0 > 0 && nr1 > 0) {
    //do smth...
}

3 个答案:

答案 0 :(得分:8)

为便于阅读和简化,我建议:

if (Math.sign(nr0) == Math.sign(nr1)) {
    //...
}

来自MDN

  

如果参数为正数,负数,正零或负零,则[Math.sign]将分别返回1,-1、0或-0。否则,将返回NaN。

答案 1 :(得分:3)

您可以将数字相乘,并检查相乘应为正(这将同时覆盖负数和正数)或它们应相等(将覆盖0的情况)

if(nr1*nr2 > 0 || (nr1 === nr2)){
    console.log("On the same side of number scale");
}

答案 2 :(得分:1)

一种方法是:

if ( nr0 * nr1 > 0 || (nr0 == 0 && nr1 == 0)) {
    // do sth...
}