Math.Sign Метод

Определение

Возвращает целое число, указывающее знак числа.

Перегрузки

Sign(IntPtr)

Возвращает целое число, указывающее знак собственного целого числа со знаком.

Sign(Single)

Возвращает целое число, указывающее знак числа с плавающей запятой с одной точностью.

Sign(SByte)

Возвращает целое число, указывающее знак 8-разрядного целого числа со знаком.

Sign(Int64)

Возвращает целое число, указывающее знак 64-разрядного целого числа со знаком.

Sign(Double)

Возвращает целое число, указывающее знак числа с плавающей запятой двойной точности.

Sign(Int16)

Возвращает целое число, указывающее знак 16-разрядного целого числа со знаком.

Sign(Decimal)

Возвращает целое число, указывающее знак десятичного числа.

Sign(Int32)

Возвращает целое число, указывающее знак 32-разрядного целого числа со знаком.

Sign(IntPtr)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак собственного целого числа со знаком.

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

Параметры

value

nint

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Примеры

В следующем примере показано, как использовать метод Sign(IntPtr) для определения знака значения IntPtr и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.NET 6, 7, 8, 9

Sign(Single)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак числа с плавающей запятой с одной точностью.

public static int Sign (float value);

Параметры

value
Single

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Исключения

value равно NaN.

Примеры

В следующем примере показано, как использовать метод Sign(Single) для определения знака значения Single и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Важно!

Этот API несовместим с CLS.

Возвращает целое число, указывающее знак 8-разрядного целого числа со знаком.

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

Параметры

value
SByte

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.
Атрибуты

Примеры

В следующем примере показано, как использовать метод Sign(SByte) для определения знака значения SByte и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак 64-разрядного целого числа со знаком.

public static int Sign (long value);

Параметры

value
Int64

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Примеры

В следующем примере показано, как использовать метод Sign(Int64) для определения знака значения Int64 и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак числа с плавающей запятой двойной точности.

public static int Sign (double value);

Параметры

value
Double

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Исключения

value равно NaN.

Примеры

В следующем примере показано, как использовать метод Sign(Double) для определения знака значения Double и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак 16-разрядного целого числа со знаком.

public static int Sign (short value);

Параметры

value
Int16

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Примеры

В следующем примере показано, как использовать метод Sign(Int16) для определения знака значения Int16 и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак десятичного числа.

public static int Sign (decimal value);

Параметры

value
Decimal

Подписываемое десятичное число.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Примеры

В следующем примере показано, как использовать метод Sign(Decimal) для определения знака значения Decimal и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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)

Исходный код:
Math.cs
Исходный код:
Math.cs
Исходный код:
Math.cs

Возвращает целое число, указывающее знак 32-разрядного целого числа со знаком.

public static int Sign (int value);

Параметры

value
Int32

Подписанный номер.

Возвращаемое значение

Число, указывающее знак value, как показано в следующей таблице.

Возвращаемое значение Значение
-1 value меньше нуля.
0 value равно нулю.
1 value больше нуля.

Примеры

В следующем примере показано, как использовать метод Sign(Int32) для определения знака значения Int32 и отображения его в консоли.

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

Применяется к

.NET 9 және басқа нұсқалар
Өнім Нұсқалар
.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