Math.Sign Method (Double)

Returns a value indicating the sign of a double-precision floating-point number.

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

Public Shared Function Sign ( _
	value As Double _
) As Integer


Type: System.Double
A signed number.

Return Value

Type: System.Int32
A number indicating the sign of value.




value is less than zero.


value is equal to zero.


value is greater than zero.


value is equal to NaN.

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

' This example demonstrates Math.Sign()
Class Example
   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      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 = 0.0F
      Dim xDouble1 As Double = 6.0
      Dim xDecimal1 As [Decimal] = -7D

      ' The following type is not CLS-compliant.
      Dim xSbyte1 As SByte = -101

      outputBlock.Text += String.Format("{0}Test the sign of the following types of values:", nl) & vbCrLf
      outputBlock.Text += String.Format(str, "Byte   ", xByte1, Test(Math.Sign(xByte1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Int16  ", xShort1, Test(Math.Sign(xShort1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Int32  ", xInt1, Test(Math.Sign(xInt1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Int64  ", xLong1, Test(Math.Sign(xLong1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Single ", xSingle1, Test(Math.Sign(xSingle1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Double ", xDouble1, Test(Math.Sign(xDouble1))) & vbCrLf
      outputBlock.Text += String.Format(str, "Decimal", xDecimal1, Test(Math.Sign(xDecimal1))) & vbCrLf
      outputBlock.Text += String.Format("{0}The following type is not CLS-compliant.", nl) & vbCrLf
      outputBlock.Text += String.Format(str, "SByte  ", xSbyte1, Test(Math.Sign(xSbyte1))) & vbCrLf
   End Sub 'Main
   Public Shared Function Test(ByVal [compare] As Integer) As [String]
      If [compare] = 0 Then
         Return "equal to"
      ElseIf [compare] < 0 Then
         Return "less than"
         Return "greater than"
      End If
   End Function 'Test
End Class 'Sample 
'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.


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions