Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Math.Sign Method

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Runtime.dll
Assemblies:
mscorlib.dll, System.Runtime.Extensions.dll
Assembly:
System.Runtime.Extensions.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Returns an integer that indicates the sign of a number.

Overloads

Name Description
Sign(IntPtr)

Returns an integer that indicates the sign of a native-sized signed integer.

Sign(Single)

Returns an integer that indicates the sign of a single-precision floating-point number.

Sign(SByte)

Returns an integer that indicates the sign of an 8-bit signed integer.

Sign(Int64)

Returns an integer that indicates the sign of a 64-bit signed integer.

Sign(Double)

Returns an integer that indicates the sign of a double-precision floating-point number.

Sign(Int16)

Returns an integer that indicates the sign of a 16-bit signed integer.

Sign(Decimal)

Returns an integer that indicates the sign of a decimal number.

Sign(Int32)

Returns an integer that indicates the sign of a 32-bit signed integer.

Sign(IntPtr)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a native-sized signed integer.

public:
 static int Sign(IntPtr value);
public static int Sign(IntPtr value);
public static int Sign(nint value);
static member Sign : nativeint -> int
Public Shared Function Sign (value As IntPtr) As Integer

Parameters

value
IntPtr

nint

nativeint

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Examples

The following example demonstrates how to use the Sign(IntPtr) method to determine the sign of an IntPtr value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.

Applies to

Sign(Single)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a single-precision floating-point number.

public:
 static int Sign(float value);
public static int Sign(float value);
static member Sign : single -> int
Public Shared Function Sign (value As Single) As Integer

Parameters

value
Single

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Exceptions

value is equal to NaN.

Examples

The following example demonstrates how to use the Sign(Single) method to determine the sign of a Single value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(SByte)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Important

This API is not CLS-compliant.

Returns an integer that indicates the sign of an 8-bit signed integer.

public:
 static int Sign(System::SByte value);
[System.CLSCompliant(false)]
public static int Sign(sbyte value);
[<System.CLSCompliant(false)>]
static member Sign : sbyte -> int
Public Shared Function Sign (value As SByte) As Integer

Parameters

value
SByte

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.
Attributes

Examples

The following example demonstrates how to use the Sign(SByte) method to determine the sign of an SByte value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(Int64)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a 64-bit signed integer.

public:
 static int Sign(long value);
public static int Sign(long value);
static member Sign : int64 -> int
Public Shared Function Sign (value As Long) As Integer

Parameters

value
Int64

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Examples

The following example demonstrates how to use the Sign(Int64) method to determine the sign of an Int64 value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(Double)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a double-precision floating-point number.

public:
 static int Sign(double value);
public static int Sign(double value);
static member Sign : double -> int
Public Shared Function Sign (value As Double) As Integer

Parameters

value
Double

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Exceptions

value is equal to NaN.

Examples

The following example demonstrates how to use the Sign(Double) method to determine the sign of a Double value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(Int16)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a 16-bit signed integer.

public:
 static int Sign(short value);
public static int Sign(short value);
static member Sign : int16 -> int
Public Shared Function Sign (value As Short) As Integer

Parameters

value
Int16

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Examples

The following example demonstrates how to use the Sign(Int16) method to determine the sign of an Int16 value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(Decimal)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a decimal number.

public:
 static int Sign(System::Decimal value);
public static int Sign(decimal value);
static member Sign : decimal -> int
Public Shared Function Sign (value As Decimal) As Integer

Parameters

value
Decimal

A signed decimal number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Examples

The following example demonstrates how to use the Sign(Decimal) method to determine the sign of a Decimal value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to

Sign(Int32)

Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs
Source:
Math.cs

Returns an integer that indicates the sign of a 32-bit signed integer.

public:
 static int Sign(int value);
public static int Sign(int value);
static member Sign : int -> int
Public Shared Function Sign (value As Integer) As Integer

Parameters

value
Int32

A signed number.

Returns

A number that indicates the sign of value, as shown in the following table.

Return value Meaning
-1 value is less than zero.
0 value is equal to zero.
1 value is greater than zero.

Examples

The following example demonstrates how to use the Sign(Int32) method to determine the sign of an Int32 value and display 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;
 nint xIntPtr1 = 8;

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

 Console.WriteLine($"{nl}Test the sign of the following types of values:");
 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(str, "IntPtr", xIntPtr1, Test(Math.Sign(xIntPtr1)));

 Console.WriteLine($"{nl}The following type is not CLS-compliant.");
 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.
IntPtr: 8 is greater than zero.

The following type is not CLS-compliant.
SByte : -101 is less than zero.
*/
// This example demonstrates Math.Sign()
// In F#, the sign function may be used instead
open System

let test = function
 | 0 ->
 "equal to"
 | x when x < 0 ->
 "less than"
 | _ ->
 "greater than"

let print typ a b = 
 printfn $"{typ}: {a,3} is {b} zero."

let xByte1 = 0uy
let xShort1 = -2s
let xInt1 = -3
let xLong1 = -4L
let xSingle1 = 0f
let xDouble1 = 6.
let xDecimal1 = -7m
let xIntPtr1 = 8

// The following type is not CLS-compliant.
let xSbyte1 = -101y

printfn "\nTest the sign of the following types of values:"
print "Byte " xByte1 (test (Math.Sign xByte1))
print "Int16 " xShort1 (test (Math.Sign xShort1))
print "Int32 " xInt1 (test (Math.Sign xInt1))
print "Int64 " xLong1 (test (Math.Sign xLong1))
print "Single " xSingle1 (test (Math.Sign xSingle1))
print "Double " xDouble1 (test (Math.Sign xDouble1))
print "Decimal" xDecimal1 (test (Math.Sign xDecimal1))
print "IntPtr" xIntPtr1 (test (Math.Sign xIntPtr1))

printfn "\nThe following type is not CLS-compliant."
print "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.
// IntPtr: 8 is greater than zero.
// 
// The following type is not CLS-compliant.
// SByte : -101 is less than zero.
' This example demonstrates Math.Sign()
Class Sample
 Public Shared Sub Main()
 Dim str As String = "{0}: {1,3} is {2} zero."
 Dim nl As String = Environment.NewLine
 
 Dim xByte1 As Byte = 0
 Dim xShort1 As Short = -2
 Dim xInt1 As Integer = -3
 Dim xLong1 As Long = -4
 Dim xSingle1 As Single = 0F
 Dim xDouble1 As Double = 6.0
 Dim xDecimal1 As [Decimal] = -7D
 
 ' The following type is not CLS-compliant.
 Dim xSbyte1 As SByte = -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)))
 End Sub
 '
 Public Shared Function Test([compare] As Integer) As [String]
 If [compare] = 0 Then
 Return "equal to"
 ElseIf [compare] < 0 Then
 Return "less than"
 Else
 Return "greater than"
 End If
 End Function 'Test
End Class
'
'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.

Applies to


Feedback

Was this page helpful?