📅  最后修改于: 2023-12-03 14:40:31.684000             🧑  作者: Mango
Decimal.ToSByte()方法是将十进制数转换为带符号8位整数,即sbyte类型。Sbyte类型表示-128到127之间的整数。如果十进制数大于127,则会引发OverflowException。
以下是Decimal.ToSByte()方法的语法:
public static sbyte ToSByte(decimal value)
参数:
返回值:
以下示例演示了如何使用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。