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