Decimal.ToSByte(Decimal) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Důležité
Toto rozhraní API neodpovídá specifikaci CLS.
- Alternativa odpovídající specifikaci CLS
- System.Decimal.ToInt16(Decimal)
Převede hodnotu zadaného Decimal na ekvivalentní 8bitové celé číslo se signoum adresou.
public:
static System::SByte ToSByte(System::Decimal value);
[System.CLSCompliant(false)]
public static sbyte ToSByte (decimal value);
[<System.CLSCompliant(false)>]
static member ToSByte : decimal -> sbyte
Public Shared Function ToSByte (value As Decimal) As SByte
Parametry
- value
- Decimal
Desítkové číslo k převodu.
Návraty
8bitové celé číslo se signedýmm value
- Atributy
Výjimky
value
je menší než SByte.MinValue nebo větší než SByte.MaxValue.
Příklady
Následující příklad používá metodu k převodu ToSByte desetinných čísel na SByte hodnoty.
using System;
class Example
{
public static void Main( )
{
decimal[] values = { 123m, new Decimal(78000, 0, 0, false, 3),
78.999m, 255.999m, 256m,
127.999m, 128m, -0.999m,
-1m, -128.999m, -129m };
foreach (var value in values) {
try {
sbyte number = Decimal.ToSByte(value);
Console.WriteLine("{0} --> {1}", value, number);
}
catch (OverflowException e)
{
Console.WriteLine("{0}: {1}", e.GetType().Name, value);
}
}
}
}
// The example displays the following output:
// 78 --> 78
// 78.000 --> 78
// 78.999 --> 78
// OverflowException: 255.999
// OverflowException: 256
// 127.999 --> 127
// OverflowException: 128
// -0.999 --> 0
// -1 --> -1
// -128.999 --> -128
// OverflowException: -129
open System
let values =
[ 123m; Decimal(78000, 0, 0, false, 3uy)
78.999m; 255.999m; 256m
127.999m; 128m; -0.999m
-1m; -128.999m; -129m ]
for value in values do
try
let number = Decimal.ToSByte value
printfn $"{value} --> {number}"
with :? OverflowException as e ->
printfn $"{e.GetType().Name}: {value}"
// The example displays the following output:
// 78 --> 78
// 78.000 --> 78
// 78.999 --> 78
// OverflowException: 255.999
// OverflowException: 256
// 127.999 --> 127
// OverflowException: 128
// -0.999 --> 0
// -1 --> -1
// -128.999 --> -128
// OverflowException: -129
Module Example
Public Sub Main()
Dim values() As Decimal = { 78d, New Decimal(78000, 0, 0, false, 3),
78.999d, 255.999d, 256d,
127.999d, 128d, -0.999d,
-1d, -128.999d, -129d }
For Each value In values
Try
Dim number As SByte = Decimal.ToSByte(value)
Console.WriteLine("{0} --> {1}", value, number)
Catch e As OverflowException
Console.WriteLine("{0}: {1}", e.GetType().Name, value)
End Try
Next
End Sub
End Module
' The example displays the following output:
' 78 --> 78
' 78.000 --> 78
' 78.999 --> 78
' OverflowException: 255.999
' OverflowException: 256
' 127.999 --> 127
' OverflowException: 128
' -0.999 --> 0
' -1 --> -1
' -128.999 --> -128
' OverflowException: -129
Poznámky
Hodnotu můžete také převést Decimal na 8bitové celé číslo se signedýmm operátorem Explicit . Protože operátor provádí zužující převod, musíte použít operátor přetypování v jazyce C# nebo převodní funkci v jazyce Visual Basic.