如何在ActionScript 3.0中获取数字的符号?

时间:2020-03-06 15:04:44  来源:igfitidea点击:

我有一个类型为Number的变量,我喜欢获得符号(如果为'-',我喜欢-1,如果'+',我喜欢1. 所以,我做到了:

var sign = Math.abs(n) / n;

但是,还有其他方法吗?比这更好?

解决方案

如果n == 0,我们会遇到麻烦。

var sign = n < 0 ? -1 : 1;

我们也可以这样做:

var sign = (n>=0)?1:-1;

使用所谓的三元运算符。

如果n为零,那将给我们一个错误。

蛮力法:

function sign(num) {
  if(num > 0) {
    return 1;
  } else if(num < 0) {
    return -1;
  } else {
    return 0;
  }
}

或者,对于那些喜欢条件运算符的人:

function sign(num) {
  return (num > 0) ? 1 : ((num < 0) ? -1 : 0);
}

如果数字适合31位,则可以使用:

var sign = 1 + 2*(n >> 31);

知道这是否会更快会很有趣!

我继承的代码段:

function getSign(number:int):int {
    var tmp:String = new String(number);
    if (tmp.indexOf(0) == '-') {
        return -1;
    }
    return 1;
}

PS:请不要使用此代码。开个玩笑