Reputation: 48686
I know this will really turn out to be simple, but my brain is just not working. I need a function in C# that will return -1 if the integer passed to the function has a negative sign, return 1 if the integer has a positive sign and return 0 if the number passed is 0. So for example:
int Sign=SignFunction(-82); // Should return -1
int Sign2=SignFunction(197); // Should return 1
int Sign3=SignFunction(0); // Should return 0
Upvotes: 23
Views: 16743
Reputation: 1387
If Math.Sign
did not exist, I would do this:
return x == 0 ? 0 : x / Math.Abs(x);
Upvotes: 1
Reputation: 564403
This is already in the framework. Just use Math.Sign...
int sign = Math.Sign(-82); // Should return -1
int sign2 = Math.Sign(197); // Should return 1
int sign3 = Math.Sign(0); // Should return 0
In addition, it will work with:
int sign4 = Math.Sign(-5.2); // Double value, returns -1
int sign5 = Math.Sign(0.0m); // Decimal, returns 0
// ....
Upvotes: 46
Reputation: 24832
public int Sign(int number)
{
if(number==0)
return 0;
return number/Math.Abs(number);
}
Upvotes: 0
Reputation: 95518
public int SignFunction(int number) {
return (number > 0) ?
1 : (number < 0) ?
-1 : number;
}
Upvotes: 2
Reputation: 10748
public int SignFunction( int input )
{
if( input < 0 ) return -1;
if( input > 0 ) return 1;
return 0;
}
Upvotes: 3
Reputation: 38768
public int SignFunction(int number)
{
return number.CompareTo(0);
}
Upvotes: 3