如何在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:请不要使用此代码。开个玩笑

