📜  C#中的Decimal.ToSByte()方法(1)

📅  最后修改于: 2023-12-03 14:40:31.684000             🧑  作者: Mango

C#中的Decimal.ToSByte()方法

Decimal.ToSByte()方法是将十进制数转换为带符号8位整数,即sbyte类型。Sbyte类型表示-128到127之间的整数。如果十进制数大于127,则会引发OverflowException。

语法

以下是Decimal.ToSByte()方法的语法:

public static sbyte ToSByte(decimal value)

参数:

  • value:要转换为sbyte的十进制数。

返回值:

  • sbyte类型,表示转换后的十进制数。
示例

以下示例演示了如何使用Decimal.ToSByte()方法将十进制数转换为sbyte类型。

using System;

class Program {
    static void Main(string[] args) {

        decimal decimalValue = 10.5m;
        sbyte sbyteValue = Decimal.ToSByte(decimalValue);
        Console.WriteLine("Decimal Value : " + decimalValue);
        Console.WriteLine("SByte Value : " + sbyteValue);

        decimalValue = 128m;
        try {
            sbyteValue = Decimal.ToSByte(decimalValue);
            Console.WriteLine("Decimal Value : " + decimalValue);
            Console.WriteLine("SByte Value : " + sbyteValue);
        } catch (OverflowException e) {
            Console.WriteLine("Exception Caught: " + e);
        }

        Console.ReadKey();
    }
}

输出:

Decimal Value : 10.5
SByte Value : 10
Exception Caught: System.OverflowException: Value was either too large or too small for an SByte.
   at System.Decimal.ToInt32(Decimal d)
   at System.Decimal.ToSByte(Decimal d)
   at Program.Main(String[] args) in ...\Program.cs:line x

第一个示例中,Decimal.ToSByte()方法将10.5m转换为sbyte类型,并打印输出转换后的值为10。

在第二个示例中,Decimal.ToSByte()方法将128m转换为sbyte类型,由于超过了sbyte类型的范围,因此引发了OverflowException。

总结
  • Decimal.ToSByte()方法将十进制数转换为带符号8位整数,即sbyte类型。
  • sbyte类型表示-128到127之间的整数。
  • 如果十进制数大于127,则会引发OverflowException。