# Math.Sign Method (Int32)

.NET Framework 3.0
Returns a value indicating the sign of a 32-bit signed integer.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

## Syntax

```public static int Sign (
int value
)
```
```public static int Sign (
int value
)
```
```public static function Sign (
value : int
) : int
```
```Not applicable.
```

value

A signed number.

#### Return Value

A number indicating the sign of value.

Number

Description

-1

value is less than zero.

0

value is equal to zero.

1

value is greater than zero.

## Example

The following example demonstrates how to use the Sign method to determine the sign of a Int32 value and print it to the console.

```// This example demonstrates Math.Sign()
using System;

class Sample
{
public static void Main()
{
string str = "{0}: {1,3} is {2} zero.";
string nl = Environment.NewLine;

byte     xByte1    = 0;
short    xShort1   = -2;
int      xInt1     = -3;
long     xLong1    = -4;
float    xSingle1  = 0.0f;
double   xDouble1  = 6.0;
Decimal  xDecimal1 = -7m;

// The following type is not CLS-compliant.
sbyte    xSbyte1   = -101;

Console.WriteLine("{0}Test the sign of the following types of values:", nl);
Console.WriteLine(str, "Byte   ", xByte1, Test(Math.Sign(xByte1)));
Console.WriteLine(str, "Int16  ", xShort1, Test(Math.Sign(xShort1)));
Console.WriteLine(str, "Int32  ", xInt1, Test(Math.Sign(xInt1)));
Console.WriteLine(str, "Int64  ", xLong1, Test(Math.Sign(xLong1)));
Console.WriteLine(str, "Single ", xSingle1, Test(Math.Sign(xSingle1)));
Console.WriteLine(str, "Double ", xDouble1, Test(Math.Sign(xDouble1)));
Console.WriteLine(str, "Decimal", xDecimal1, Test(Math.Sign(xDecimal1)));
//
Console.WriteLine("{0}The following type is not CLS-compliant.", nl);
Console.WriteLine(str, "SByte  ", xSbyte1, Test(Math.Sign(xSbyte1)));
}
//
public static String Test(int compare)
{
if (compare == 0)
return "equal to";
else if (compare < 0)
return "less than";
else
return "greater than";
}
}
/*
This example produces the following results:

Test the sign of the following types of values:
Byte   :   0 is equal to zero.
Int16  :  -2 is less than zero.
Int32  :  -3 is less than zero.
Int64  :  -4 is less than zero.
Single :   0 is equal to zero.
Double :   6 is greater than zero.
Decimal:  -7 is less than zero.

The following type is not CLS-compliant.
SByte  : -101 is less than zero.
*/

```
```// This example demonstrates Math.Sign()
import System.*;

class Sample
{
public static void main(String[] args)
{
String str = "{0}: {1,3} is {2} zero.";
String nl = Environment.get_NewLine();

ubyte xByte1 = 0;
short xShort1 = -2;
int xInt1 = -3;
long xLong1 = -4;
float xSingle1 = 0;
double xDouble1 = 6.0;
Decimal xDecimal1 = new Decimal(-7);

// The following type is not CLS-compliant.
byte xSbyte1 = -101;

Console.WriteLine("{0}Test the sign of the following types of values:",
nl);
Console.WriteLine(str, "Byte   ", System.Convert.ToString(xByte1),
Test(System.Math.Sign(xByte1)));
Console.WriteLine(str, "Int16  ", System.Convert.ToString(xShort1),
Test(System.Math.Sign(xShort1)));
Console.WriteLine(str, "Int32  ", System.Convert.ToString(xInt1),
Test(System.Math.Sign(xInt1)));
Console.WriteLine(str, "Int64  ", System.Convert.ToString(xLong1),
Test(System.Math.Sign(xLong1)));
Console.WriteLine(str, "Single ", System.Convert.ToString(xSingle1),
Test(System.Math.Sign(xSingle1)));
Console.WriteLine(str, "Double ", System.Convert.ToString(xDouble1),
Test(System.Math.Sign(xDouble1)));
Console.WriteLine(str, "Decimal", System.Convert.ToString(xDecimal1),
Test(System.Math.Sign(xDecimal1)));
//
Console.WriteLine("{0}The following type is not CLS-compliant.", nl);
Console.WriteLine(str, "SByte  ", System.Convert.ToString(xSbyte1),
Test(System.Math.Sign(xSbyte1)));
} //main

//
public static String Test(int compare)
{
if (compare == 0) {
return "equal to";
}
else {
if (compare < 0) {
return "less than";
}
else {
return "greater than";
}
}
} //Test

/*
This example produces the following results:

Test the sign of the following types of values:
Byte   :   0 is equal to zero.
Int16  :  -2 is less than zero.
Int32  :  -3 is less than zero.
Int64  :  -4 is less than zero.
Single :   0 is equal to zero.
Double :   6 is greater than zero.
Decimal:  -7 is less than zero.

The following type is not CLS-compliant.
SByte  : -101 is less than zero.
*/
} //Sample

```

## Platforms

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

## Version Information

#### .NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

#### .NET Compact Framework

Supported in: 2.0, 1.0

#### XNA Framework

Supported in: 1.0