返回标志的功能

时间:2010-07-15 20:02:02

标签: c# .net math

我知道这真的很简单,但我的大脑却没有用。我需要一个C#函数,如果传递给函数的整数有一个负号,则返回-1,如果整数有一个正号,则返回1,如果传递的数是0,则返回0.所以例如:

int Sign=SignFunction(-82); // Should return -1
int Sign2=SignFunction(197); // Should return 1
int Sign3=SignFunction(0);   // Should return 0

8 个答案:

答案 0 :(得分:41)

这已经在框架中了。只需使用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

此外,它还适用于:

int sign4 = Math.Sign(-5.2); // Double value, returns -1
int sign5 = Math.Sign(0.0m); // Decimal, returns 0
// ....

答案 1 :(得分:7)

int sign = Math.Sign(number);

它已经存在。

答案 2 :(得分:3)

public int SignFunction(int number) 
{
    return number.CompareTo(0);
}

答案 3 :(得分:3)

public int SignFunction( int input )
{
    if( input < 0 ) return -1;
    if( input > 0 ) return 1;
    return 0;
}

答案 4 :(得分:3)

return input.CompareTo(0);

答案 5 :(得分:2)

public int SignFunction(int number) {
  return (number > 0) ? 
             1 : (number < 0) ? 
                    -1 : number;
}

答案 6 :(得分:1)

如果Math.Sign不存在,我会这样做:

return x == 0 ? 0 : x / Math.Abs(x);

答案 7 :(得分:0)

public int Sign(int number)
{
    if(number==0)
       return 0;
    return number/Math.Abs(number);
}