This documentation is archived and is not being maintained.

# Math.Sign Method (Int64)

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

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

## Syntax

```public:
static int Sign (
long long value
)
```
```public static int Sign (
long value
)
```
```public static function Sign (
value : long
) : 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 Int64 value and print it to the console.

```// This example demonstrates Math.Sign()
using namespace System;
String^ Test( int compare )
{
if ( compare == 0 )
return "equal to";
else
if ( compare < 0 )
return "less than";
else
return "greater than";
}

int 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 = -7;

// 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 ) ) );
}

/*
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