次の方法で共有


Decimal から SByte への変換

Decimal を 8 ビット符号付き整数に変換します。

この型変換は、CLS と互換性がありません。CLS との互換性が必要な場合は、代わりに ToInt16 メンバを使用してください。CLS との互換性に関する詳細については 「共通言語仕様の概要」 を参照してください。

<CLSCompliant(False)>
returnValue = Decimal.op_Explicit(value)
[C#]
[CLSCompliant(false)]
public static explicit operator sbyte(decimalvalue);
[C++]
[CLSCompliant(false)]
public: static char op_Explicit();
[JScript]
returnValue = SByte(value);

[Visual Basic] Visual Basic では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。Decimal から SByte への変換の代わりに、ToSByte メソッドを使用できます。

[JScript] JScript では、この型で定義されている型変換を使用することができます。ただし、独自に定義することはできません。

引数 [Visual Basic, JScript]

パラメータ [C#]

戻り値

変換された Decimal を表す 8 ビット符号付き整数。

例外

例外の種類 条件
OverflowException value が SByte.MinValue より小さい値か、 SByte.MaxValue より大きい値です。

使用例

[C#, C++] 明示的な Decimal to SByte 変換を使用して Decimal の数値を SByte の値に変換するコード例を次に示します。

 
// Example of the explicit conversions from decimal to byte and 
// decimal to sbyte.
using System;

class DecimalToS_ByteDemo
{
    const string formatter = "{0,16}{1,19}{2,19}";

    // Get the exception type name; remove the namespace prefix.
    public static string GetExceptionType( Exception ex )
    {
        string exceptionType = ex.GetType( ).ToString( );
        return exceptionType.Substring( 
            exceptionType.LastIndexOf( '.' ) + 1 );
    }

    // Convert the decimal argument; catch exceptions that are thrown.
    public static void DecimalToS_Byte( decimal argument )
    {
        object SByteValue;
        object ByteValue;

        // Convert the argument to an sbyte value.
        try
        {
            SByteValue = (sbyte)argument;
        }
        catch( Exception ex )
        {
            SByteValue = GetExceptionType( ex );
        }

        // Convert the argument to a byte value.
        try
        {
            ByteValue = (byte)argument;
        }
        catch( Exception ex )
        {
            ByteValue = GetExceptionType( ex );
        }

        Console.WriteLine( formatter, argument, 
            SByteValue, ByteValue );
    }

    public static void Main( )
    {
        Console.WriteLine( 
            "This example of the explicit conversions from decimal " +
            "to sbyte \nand decimal to byte generates the following " +
            "output. It displays \nseveral converted decimal " +
            "values.\n" );
        Console.WriteLine( formatter, "decimal argument", 
            "sbyte/exception", "byte/exception" );
        Console.WriteLine( formatter, "----------------", 
            "---------------", "--------------" );

        // Convert decimal values and display the results.
        DecimalToS_Byte( 78M );
        DecimalToS_Byte( new decimal( 78000, 0, 0, false, 3 ) );
        DecimalToS_Byte( 78.999M );
        DecimalToS_Byte( 255.999M );
        DecimalToS_Byte( 256M );
        DecimalToS_Byte( 127.999M );
        DecimalToS_Byte( 128M );
        DecimalToS_Byte( -0.999M );
        DecimalToS_Byte( -1M );
        DecimalToS_Byte( -128.999M );
        DecimalToS_Byte( -129M );
    }
}

/*
This example of the explicit conversions from decimal to sbyte
and decimal to byte generates the following output. It displays
several converted decimal values.

decimal argument    sbyte/exception     byte/exception
----------------    ---------------     --------------
              78                 78                 78
          78.000                 78                 78
          78.999                 78                 78
         255.999  OverflowException                255
             256  OverflowException  OverflowException
         127.999                127                127
             128  OverflowException                128
          -0.999                  0                  0
              -1                 -1  OverflowException
        -128.999               -128  OverflowException
            -129  OverflowException  OverflowException
*/

[C++] 
// Example of the explicit conversions from Decimal to char and 
// Decimal to unsigned char.
#using <mscorlib.dll>
using namespace System;

const __wchar_t* formatter = L"{0,16}{1,19}{2,19}";

// Get the exception type name; remove the namespace prefix.
String* GetExceptionType( Exception* ex )
{
    String* exceptionType = ex->GetType( )->ToString( );
    return exceptionType->Substring( 
        exceptionType->LastIndexOf( '.' ) + 1 );
}

// Convert the Decimal argument; catch exceptions that are thrown.
void DecimalToS_Byte( Decimal argument )
{
    Object* ByteValue;
    Object* SByteValue;

    // Convert the argument to an unsigned byte value.
    try
    {
        ByteValue = __box( (unsigned char)argument );
    }
    catch( Exception* ex )
    {
        ByteValue = GetExceptionType( ex );
    }

    // Convert the argument to a signed byte value.
    // The cast (char) causes a compile error.
    try
    {
        SByteValue = __box( (signed char)argument );
    }
    catch( Exception* ex )
    {
        SByteValue = GetExceptionType( ex );
    }

    Console::WriteLine( formatter, __box( argument ), 
        ByteValue, SByteValue );
}

void main( )
{
    Console::WriteLine(  
        S"This example of the explicit conversions from Decimal " 
        S"to signed \nand unsigned 8-bit char generates the " 
        S"following output. It \ndisplays several converted Decimal " 
        S"values.\n" );
    Console::WriteLine( formatter, S"Decimal argument", 
        S"unsigned char", S"signed char" );
    Console::WriteLine( formatter, S"----------------", 
        S"-------------", S"-----------" );

    // Convert Decimal values and display the results.
    DecimalToS_Byte( Decimal::Parse( "78" ) );
    DecimalToS_Byte( Decimal( 78000, 0, 0, false, 3 ) );
    DecimalToS_Byte( Decimal::Parse( "78.999" ) );
    DecimalToS_Byte( Decimal::Parse( "255.999" ) );
    DecimalToS_Byte( Decimal::Parse( "256" ) );
    DecimalToS_Byte( Decimal::Parse( "127.999" ) );
    DecimalToS_Byte( Decimal::Parse( "128" ) );
    DecimalToS_Byte( Decimal::Parse( "-0.999" ) );
    DecimalToS_Byte( Decimal::Parse( "-1" ) );
    DecimalToS_Byte( Decimal::Parse( "-128.999" ) );
    DecimalToS_Byte( Decimal::Parse( "-129" ) );
}

/*
This example of the explicit conversions from Decimal to signed
and unsigned 8-bit char generates the following output. It
displays several converted Decimal values.

Decimal argument      unsigned char        signed char
----------------      -------------        -----------
              78                 78                 78
          78.000                 78                 78
          78.999                 78                 78
         255.999                255  OverflowException
             256  OverflowException  OverflowException
         127.999                127                127
             128                128  OverflowException
          -0.999                  0                  0
              -1  OverflowException                 -1
        -128.999  OverflowException               -128
            -129  OverflowException  OverflowException
*/

[Visual Basic, JScript] Visual Basic および JScript のサンプルはありません。C# および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Decimal 構造体 | Decimal メンバ | System 名前空間 | SByte