Math.Sign Método

Definição

Retorna um inteiro que indica o sinal de um número.

Sobrecargas

Sign(IntPtr)

Retorna um inteiro que indica o sinal de um inteiro com sinal de tamanho nativo.

Sign(Single)

Retorna um inteiro que indica o sinal de um número de ponto flutuante de precisão única.

Sign(SByte)

Retorna um inteiro que indica o sinal de um inteiro com sinal de 8 bits.

Sign(Int64)

Retorna um inteiro que indica o sinal de um inteiro com sinal de 64 bits.

Sign(Double)

Retorna um inteiro que indica o sinal de um número de ponto flutuante de precisão dupla.

Sign(Int16)

Retorna um inteiro que indica o sinal de um inteiro com sinal de 16 bits.

Sign(Decimal)

Retorna um inteiro que indica o sinal de um número decimal.

Sign(Int32)

Retorna um inteiro que indica o sinal de um inteiro com sinal de 32 bits.

Sign(IntPtr)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um inteiro com sinal de tamanho nativo.

public static int Sign (nint value);
public static int Sign (IntPtr value);

Parâmetros

value

nint

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(IntPtr) para determinar o sinal de um valor IntPtr e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET 6, 7, 8, 9

Sign(Single)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um número de ponto flutuante de precisão única.

public static int Sign (float value);

Parâmetros

value
Single

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exceções

value é igual a NaN.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Single) para determinar o sinal de um valor Single e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(SByte)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Importante

Esta API não está em conformidade com CLS.

Retorna um inteiro que indica o sinal de um inteiro com sinal de 8 bits.

[System.CLSCompliant(false)]
public static int Sign (sbyte value);

Parâmetros

value
SByte

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.
Atributos

Exemplos

O exemplo a seguir demonstra como usar o método Sign(SByte) para determinar o sinal de um valor SByte e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(Int64)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um inteiro com sinal de 64 bits.

public static int Sign (long value);

Parâmetros

value
Int64

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Int64) para determinar o sinal de um valor Int64 e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(Double)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um número de ponto flutuante de precisão dupla.

public static int Sign (double value);

Parâmetros

value
Double

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exceções

value é igual a NaN.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Double) para determinar o sinal de um valor Double e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(Int16)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um inteiro com sinal de 16 bits.

public static int Sign (short value);

Parâmetros

value
Int16

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Int16) para determinar o sinal de um valor Int16 e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(Decimal)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um número decimal.

public static int Sign (decimal value);

Parâmetros

value
Decimal

Um número decimal assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Decimal) para determinar o sinal de um valor Decimal e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Sign(Int32)

Origem:
Math.cs
Origem:
Math.cs
Origem:
Math.cs

Retorna um inteiro que indica o sinal de um inteiro com sinal de 32 bits.

public static int Sign (int value);

Parâmetros

value
Int32

Um número assinado.

Retornos

Um número que indica o sinal de value, conforme mostrado na tabela a seguir.

Valor de retorno Significado
-1 value é menor que zero.
0 value é igual a zero.
1 value é maior que zero.

Exemplos

O exemplo a seguir demonstra como usar o método Sign(Int32) para determinar o sinal de um valor Int32 e exibi-lo no 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.
*/

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0