BigInteger.Explicit 演算子

定義

BigInteger オブジェクトと別の型の間の明示的な変換を定義します。

オーバーロード

Explicit(BigInteger to UInt64)

BigInteger オブジェクトから符号なし 64 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Double.を使用できます。

Explicit(BigInteger to UInt32)

BigInteger オブジェクトから符号なし 32 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int64.を使用できます。

Explicit(BigInteger to UInt16)

BigInteger オブジェクトから符号なし 16 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int32.を使用できます。

Explicit(BigInteger to Single)

BigInteger オブジェクトから単精度浮動小数点値への明示的な変換を定義します。

Explicit(BigInteger to SByte)

BigInteger オブジェクトから符号付き 8 ビット値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int16.を使用できます。

Explicit(BigInteger to Int64)

BigInteger オブジェクトから 64 ビット符号付き整数値への明示的な変換を定義します。

Explicit(Single to BigInteger)

Single 値から BigInteger 値への明示的な変換を定義します。

Explicit(BigInteger to Int16)

BigInteger オブジェクトから 16 ビット符号付き整数値への明示的な変換を定義します。

Explicit(BigInteger to Double)

BigInteger オブジェクトから Double 値への明示的な変換を定義します。

Explicit(BigInteger to Decimal)

BigInteger オブジェクトから Decimal 値への明示的な変換を定義します。

Explicit(BigInteger to Byte)

BigInteger オブジェクトから符号なしバイト値への明示的な変換を定義します。

Explicit(Double to BigInteger)

Double 値から BigInteger 値への明示的な変換を定義します。

Explicit(Decimal to BigInteger)

Decimal オブジェクトから BigInteger 値への明示的な変換を定義します。

Explicit(BigInteger to Int32)

BigInteger オブジェクトから 32 ビット符号付き整数値への明示的な変換を定義します。

Explicit(BigInteger to UInt64)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Double

BigInteger オブジェクトから符号なし 64 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Double.を使用できます。

public:
 static explicit operator System::UInt64(System::Numerics::BigInteger value);
[System.CLSCompliant(false)]
public static explicit operator ulong (System.Numerics.BigInteger value);
[<System.CLSCompliant(false)>]
static member op_Explicit : System.Numerics.BigInteger -> uint64
Public Shared Narrowing Operator CType (value As BigInteger) As ULong

パラメーター

value
BigInteger

符号なし 64 ビット整数へと変換する値。

戻り値

UInt64

value パラメーターの値を格納しているオブジェクト。

属性

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 UInt64 しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerUInt64 処理します。

// BigInteger to UInt64 conversion.
BigInteger goodULong = 2000000000;
BigInteger badULong = BigInteger.Pow(goodULong, 3);

ulong uLongFromBigInteger;

// Successful conversion using cast operator.
uLongFromBigInteger = (ulong) goodULong;
Console.WriteLine(uLongFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   uLongFromBigInteger = (ulong) badULong;
   Console.WriteLine(uLongFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badULong, e.Message);
}
Console.WriteLine();
' BigInteger to UInt64 conversion.
Dim goodULong As BigInteger = 2000000000
Dim badULong As BigInteger = BigInteger.Pow(goodULong, 3)

Dim uLongFromBigInteger As ULong

' Convert using CType function.
uLongFromBigInteger = CType(goodULong, ULong)
Console.WriteLine(uLongFromBigInteger)
' Convert using CULng function.
uLongFromBigInteger = CULng(goodULong)
Console.WriteLine(uLongFromBigInteger)

' Handle conversion that should result in overflow.
Try
   uLongFromBigInteger = CType(badULong, ULong)
   Console.WriteLine(uLongFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badULong, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CULng が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger UInt64 スローされる可能性があります。 変換が成功した場合、結果の UInt64 値の有効桁数は失われる可能性はありません。

適用対象

Explicit(BigInteger to UInt32)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Int64

BigInteger オブジェクトから符号なし 32 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int64.を使用できます。

public:
 static explicit operator System::UInt32(System::Numerics::BigInteger value);
[System.CLSCompliant(false)]
public static explicit operator uint (System.Numerics.BigInteger value);
[<System.CLSCompliant(false)>]
static member op_Explicit : System.Numerics.BigInteger -> uint32
Public Shared Narrowing Operator CType (value As BigInteger) As UInteger

パラメーター

value
BigInteger

符号なし 32 ビット整数へと変換する値。

戻り値

UInt32

value パラメーターの値を格納しているオブジェクト。

属性

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 UInt32 しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerUInt32 処理します。

// BigInteger to UInt32 conversion.
BigInteger goodUInteger = 200000;
BigInteger badUInteger = 65000000000;

uint uIntegerFromBigInteger;

// Successful conversion using cast operator.
uIntegerFromBigInteger = (uint) goodInteger;
Console.WriteLine(uIntegerFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   uIntegerFromBigInteger = (uint) badUInteger;
   Console.WriteLine(uIntegerFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badUInteger, e.Message);
}
Console.WriteLine();
' BigInteger to UInt32 conversion.
Dim goodUInteger As BigInteger = 200000
Dim badUInteger As BigInteger = 65000000000

Dim uIntegerFromBigInteger As UInteger

' Convert using CType function.
uIntegerFromBigInteger = CType(goodInteger, UInteger)
Console.WriteLine(uIntegerFromBigInteger)
' Convert using CUInt function.
uIntegerFromBigInteger = CUInt(goodInteger)
Console.WriteLine(uIntegerFromBigInteger)

' Handle conversion that should result in overflow.
Try
   uIntegerFromBigInteger = CType(badUInteger, UInteger)
   Console.WriteLine(uIntegerFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badUInteger, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CUInt が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger UInt32 スローされる可能性があります。 変換が成功した場合、結果の UInt32 値の有効桁数は失われる可能性はありません。

適用対象

Explicit(BigInteger to UInt16)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Int32

BigInteger オブジェクトから符号なし 16 ビット整数値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int32.を使用できます。

public:
 static explicit operator System::UInt16(System::Numerics::BigInteger value);
[System.CLSCompliant(false)]
public static explicit operator ushort (System.Numerics.BigInteger value);
[<System.CLSCompliant(false)>]
static member op_Explicit : System.Numerics.BigInteger -> uint16
Public Shared Narrowing Operator CType (value As BigInteger) As UShort

パラメーター

value
BigInteger

符号なし 16 ビット整数へと変換する値。

戻り値

UInt16

value パラメーターの値を格納しているオブジェクト。

属性

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 UInt16 しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerUInt16 処理します。

// BigInteger to UInt16 conversion.
BigInteger goodUShort = 20000;
BigInteger badUShort = 66000;

ushort uShortFromBigInteger;

// Successful conversion using cast operator.
uShortFromBigInteger = (ushort) goodUShort;
Console.WriteLine(uShortFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   uShortFromBigInteger = (ushort) badUShort;
   Console.WriteLine(uShortFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badUShort, e.Message);
}
Console.WriteLine();
' BigInteger to UInt16 conversion.
Dim goodUShort As BigInteger = 20000
Dim badUShort As BigInteger = 66000

Dim uShortFromBigInteger As UShort

' Convert using CType function.
uShortFromBigInteger = CType(goodUShort, UShort)
Console.WriteLine(uShortFromBigInteger)
' Convert using CUShort function.
uShortFromBigInteger = CUShort(goodUShort)
Console.WriteLine(uShortFromBigInteger)

' Handle conversion that should result in overflow.
Try
   uShortFromBigInteger = CType(badUShort, UShort)
   Console.WriteLine(uShortFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badUShort, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CUShort が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger UInt16 スローされる可能性があります。 変換が成功した場合、結果の UInt16 値の有効桁数は失われる可能性はありません。

適用対象

Explicit(BigInteger to Single)

BigInteger オブジェクトから単精度浮動小数点値への明示的な変換を定義します。

public:
 static explicit operator float(System::Numerics::BigInteger value);
public static explicit operator float (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> single
Public Shared Narrowing Operator CType (value As BigInteger) As Single

パラメーター

value
BigInteger

単精度浮動小数点値へと変換する値。

戻り値

Single

value パラメーターの値にできるだけ近い値となるように変換したオブジェクト。

次の例は、 から 値への変換 BigInteger を示 Single しています。

// BigInteger to Single conversion.
BigInteger goodSingle = (BigInteger) 102.43e22F;
BigInteger badSingle = (BigInteger) float.MaxValue;
badSingle = badSingle * 2;

float singleFromBigInteger;

// Successful conversion using cast operator.
singleFromBigInteger = (float) goodSingle;
Console.WriteLine(singleFromBigInteger);

// Convert an out-of-bounds BigInteger value to a Single.
singleFromBigInteger = (float) badSingle;
Console.WriteLine(singleFromBigInteger);
' BigInteger to Single conversion.
Dim goodSingle As BigInteger = 102.43e22
Dim badSingle As BigInteger = CType(Single.MaxValue, BigInteger)  
badSingle = badSingle * 2

Dim singleFromBigInteger As Single

' Convert using CType function.
singleFromBigInteger = CType(goodSingle, Single)
Console.WriteLine(singleFromBigInteger)
' Convert using CSng function.
singleFromBigInteger = CSng(goodSingle)
Console.WriteLine(singleFromBigInteger)

' Convert an out-of-bounds BigInteger value to a Single.
singleFromBigInteger = CType(badSingle, Single)
Console.WriteLine(singleFromBigInteger)

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データの損失や精度の損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CSng が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

値はデータ型の範囲内に含まれる可能性があります。この操作は BigInteger Single 縮小変換です。 変換に失敗した場合、 はスローされません OverflowException 。 代わりに、値が BigInteger より小さい場合、 Single.MinValue 結果の Single 値は になります Single.NegativeInfinity 。 値が BigInteger より大きい場合 Single.MaxValue 、結果の Single 値は になります Single.PositiveInfinity

を に変換すると BigIntegerSingle 精度が失われる可能性があります。 場合によっては、有効桁数が失われると、値がデータ型の範囲を超えなくても、キャストまたは変換操作 BigInteger が成功する Single 可能性があります。 具体的な例を次に示します。 2 つの変数に の最大値を割り当て、1 つの変数を Single BigInteger BigInteger 9.999e291 ずつインクリメントし、2 つの変数の等値をテストします。 予想通り、 メソッドの呼び BigInteger.Equals(BigInteger) 出しは、等しくないと示されます。 ただし、大きい値を に戻す変換は成功しますが、値 BigInteger SingleBigInteger を超える値になります Single.MaxValue

// Increase a BigInteger so it exceeds Single.MaxValue.
BigInteger number1 = (BigInteger) Single.MaxValue;
BigInteger number2 = number1;
number2 = number2 + (BigInteger) 9.999e30;
// Compare the BigInteger values for equality.
Console.WriteLine("BigIntegers equal: {0}", number2.Equals(number1));

// Convert the BigInteger to a Single.
float sng = (float) number2;

// Display the two values.
Console.WriteLine("BigInteger: {0}", number2);
Console.WriteLine("Single:     {0}", sng);
// The example displays the following output:
//       BigIntegers equal: False
//       BigInteger: 3.4028235663752885981170396038E+38
//       Single:     3.402823E+38
' Increase a BigInteger so it exceeds Single.MaxValue.
Dim number1 As BigInteger = CType(Single.MaxValue, BigInteger)
Dim number2 As BigInteger = number1
number2 = number2 + 9.999e30
' Compare the BigInteger values for equality.
Console.WriteLine("BigIntegers equal: {0}", number2.Equals(number1))

' Convert the BigInteger to a Single.
Dim sng As Single = CType(number2, Single)

' Display the two values.
Console.WriteLine("BigInteger: {0}", number2)
Console.WriteLine("Single:     {0}", sng)      
' The example displays the following output:
'       BigIntegers equal: False
'       BigInteger: 3.4028235663752885981170396038E+38
'       Single:     3.402823E+38

適用対象

Explicit(BigInteger to SByte)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Int16

BigInteger オブジェクトから符号付き 8 ビット値への明示的な変換を定義します。

この API は、CLS に準拠していません。 準拠している代替として Int16.を使用できます。

public:
 static explicit operator System::SByte(System::Numerics::BigInteger value);
[System.CLSCompliant(false)]
public static explicit operator sbyte (System.Numerics.BigInteger value);
[<System.CLSCompliant(false)>]
static member op_Explicit : System.Numerics.BigInteger -> sbyte
Public Shared Narrowing Operator CType (value As BigInteger) As SByte

パラメーター

value
BigInteger

符号付き 8 ビット値へと変換する値。

戻り値

SByte

value パラメーターの値を格納しているオブジェクト。

属性

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 SByte しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerSByte 処理します。

// BigInteger to SByte conversion.
BigInteger goodSByte = BigInteger.MinusOne;
BigInteger badSByte = -130;

sbyte sByteFromBigInteger;

// Successful conversion using cast operator.
sByteFromBigInteger = (sbyte) goodSByte;
Console.WriteLine(sByteFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   sByteFromBigInteger = (sbyte) badSByte;
   Console.WriteLine(sByteFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badSByte, e.Message);
}
Console.WriteLine();
' BigInteger to SByte conversion.
Dim goodSByte As BigInteger = BigInteger.MinusOne
Dim badSByte As BigInteger = -130

Dim sByteFromBigInteger As SByte

' Convert using CType function.
sByteFromBigInteger = CType(goodSByte, SByte)
Console.WriteLine(sByteFromBigInteger)
' Convert using CSByte function.
sByteFromBigInteger = CSByte(goodSByte)
Console.WriteLine(sByteFromBigInteger)

' Handle conversion that should result in overflow.
Try
   sByteFromBigInteger = CType(badSByte, SByte)
   Console.WriteLine(sByteFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badSByte, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CSByte が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger SByte スローされる可能性があります。 変換が成功した場合、結果の SByte 値の有効桁数は失われる可能性はありません。

適用対象

Explicit(BigInteger to Int64)

BigInteger オブジェクトから 64 ビット符号付き整数値への明示的な変換を定義します。

public:
 static explicit operator long(System::Numerics::BigInteger value);
public static explicit operator long (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> int64
Public Shared Narrowing Operator CType (value As BigInteger) As Long

パラメーター

value
BigInteger

64 ビット符号付き整数へと変換する値。

戻り値

Int64

value パラメーターの値を格納しているオブジェクト。

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 Int64 しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerInt64 処理します。

// BigInteger to Int64 conversion.
BigInteger goodLong = 2000000000;
BigInteger badLong = BigInteger.Pow(goodLong, 3);

long longFromBigInteger;

// Successful conversion using cast operator.
longFromBigInteger = (long) goodLong;
Console.WriteLine(longFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   longFromBigInteger = (long) badLong;
   Console.WriteLine(longFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badLong, e.Message);
}
Console.WriteLine();
' BigInteger to Int64 conversion.
Dim goodLong As BigInteger = 2000000000
Dim badLong As BigInteger = BigInteger.Pow(goodLong, 3)

Dim longFromBigInteger As Long

' Convert using CType function.
longFromBigInteger = CType(goodLong, Long)
Console.WriteLine(longFromBigInteger)
' Convert using CLng function.
longFromBigInteger = CLng(goodLong)
Console.WriteLine(longFromBigInteger)

' Handle conversion that should result in overflow.
Try
   longFromBigInteger = CType(badLong, Long)
   Console.WriteLine(longFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badLong, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CLng が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger Int64 スローされる可能性があります。

適用対象

Explicit(Single to BigInteger)

Single 値から BigInteger 値への明示的な変換を定義します。

public:
 static explicit operator System::Numerics::BigInteger(float value);
public static explicit operator System.Numerics.BigInteger (float value);
static member op_Explicit : single -> System.Numerics.BigInteger
Public Shared Narrowing Operator CType (value As Single) As BigInteger

パラメーター

value
Single

BigInteger へと変換する値。

戻り値

BigInteger

value パラメーターの値を格納しているオブジェクト。

例外

valueNaNPositiveInfinity、または NegativeInfinity です。

次の例では、値の配列内の個々の要素を オブジェクトに変換し、各変換 Single BigInteger の結果を表示します。 変換中に、値の小数 Single 部が切り捨てられる点に注意してください。

float[] singles = { Single.MinValue, -1.430955172e03f, 2.410970032e05f,
                    Single.MaxValue, Single.PositiveInfinity,
                     Single.NegativeInfinity, Single.NaN };
BigInteger number;

Console.WriteLine("{0,37} {1,37}\n", "Single", "BigInteger");

foreach (float value in singles)
{
   try {
      number = (BigInteger) value;
      Console.WriteLine("{0,37} {1,37}", value, number);
   }
   catch (OverflowException) {
      Console.WriteLine("{0,37} {1,37}", value, "OverflowException");
   }
}
// The example displays the following output:
//           Single                            BigInteger
//
//    -3.402823E+38   -3.4028234663852885981170418348E+38
//        -1430.955                                 -1430
//           241097                                241097
//     3.402823E+38    3.4028234663852885981170418348E+38
//         Infinity                     OverflowException
//        -Infinity                     OverflowException
//              NaN                     OverflowException
Dim singles() As Single = { Single.MinValue, -1.430955172e03, 2.410970032e05, 
                            Single.MaxValue, Single.PositiveInfinity, 
                            Single.NegativeInfinity, Single.NaN }
Dim number As BigInteger

Console.WriteLine("{0,37} {1,37}", "Single", "BigInteger")
Console.WriteLine()
For Each value As Single In singles
   Try
      number = CType(value, BigInteger)
      Console.WriteLine("{0,37} {1,37}", value, number)
   Catch e As OverflowException
      Console.WriteLine("{0,37} {1,37}", value, "OverflowException")
   End Try
Next     
' The example displays the following output:
'           Single                            BigInteger
' 
'    -3.402823E+38   -3.4028234663852885981170418348E+38
'        -1430.955                                 -1430
'           241097                                241097
'     3.402823E+38    3.4028234663852885981170418348E+38
'         Infinity                     OverflowException
'        -Infinity                     OverflowException
'              NaN                     OverflowException

注釈

パラメーターの小数部 value は、変換前に切り捨てされます。

メソッドのオーバーロードは Explicit(Decimal to BigInteger) 、オブジェクトの変換の対象または変換の基になる BigInteger 型を定義します。 から への変換では、 の小数部を切り捨てる必要があります。言語コンパイラは、この変換 Single BigInteger value を自動的に実行しない場合があります。 代わりに、キャスト演算子 (C#) または変換関数 (例: Visual Basic) が使用 CType されている場合にのみ、変換が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

カスタム演算子をサポートしていない言語の場合、代替メソッドは です BigInteger.BigInteger(Single)

適用対象

Explicit(BigInteger to Int16)

BigInteger オブジェクトから 16 ビット符号付き整数値への明示的な変換を定義します。

public:
 static explicit operator short(System::Numerics::BigInteger value);
public static explicit operator short (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> int16
Public Shared Narrowing Operator CType (value As BigInteger) As Short

パラメーター

value
BigInteger

16 ビット符号付き整数へと変換する値。

戻り値

Int16

value パラメーターの値を格納しているオブジェクト。

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、を値に変換する方法を示してい BigInteger Int16 ます。 また、 OverflowException BigInteger 値がデータ型の範囲外であるためにスローされるを処理 Int16 します。

// BigInteger to Int16 conversion.
BigInteger goodShort = 20000;
BigInteger badShort = 33000;

short shortFromBigInteger;

// Successful conversion using cast operator.
shortFromBigInteger = (short) goodShort;
Console.WriteLine(shortFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   shortFromBigInteger = (short) badShort;
   Console.WriteLine(shortFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badShort, e.Message);
}
Console.WriteLine();
' BigInteger to Int16 conversion.
Dim goodShort As BigInteger = 20000
Dim badShort As BigInteger = 33000

Dim shortFromBigInteger As Short

' Convert using CType function.
shortFromBigInteger = CType(goodShort, Short)
Console.WriteLine(shortFromBigInteger)
' Convert using CShort function.
shortFromBigInteger = CShort(goodShort)
Console.WriteLine(shortFromBigInteger)

' Handle conversion that should result in overflow.
Try
   shortFromBigInteger = CType(badShort, Short)
   Console.WriteLine(shortFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badShort, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 言語コンパイラでは、データが失われる可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行し CShort ます。 それ以外の場合は、コンパイラエラーが表示されます。

この操作は縮小変換を定義するので、 OverflowException BigInteger 値がデータ型の範囲外の場合は、実行時にをスローすることができ Int16 ます。 Int16変換が成功した場合、結果の値には精度が失われません。

適用対象

Explicit(BigInteger to Double)

BigInteger オブジェクトから Double 値への明示的な変換を定義します。

public:
 static explicit operator double(System::Numerics::BigInteger value);
public static explicit operator double (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> double
Public Shared Narrowing Operator CType (value As BigInteger) As Double

パラメーター

value
BigInteger

Double へと変換する値。

戻り値

Double

value パラメーターの値を格納しているオブジェクト。

次の例は、を値に変換する方法を示してい BigInteger Double ます。

// BigInteger to Double conversion.
BigInteger goodDouble = (BigInteger) 102.43e22;
BigInteger badDouble = (BigInteger) Double.MaxValue;
badDouble = badDouble * 2;

double doubleFromBigInteger;

// successful conversion using cast operator.
doubleFromBigInteger = (double) goodDouble;
Console.WriteLine(doubleFromBigInteger);

// Convert an out-of-bounds BigInteger value to a Double.
doubleFromBigInteger = (double) badDouble;
Console.WriteLine(doubleFromBigInteger);
' BigInteger to Double conversion.
Dim goodDouble As BigInteger = 102.43e22
Dim badDouble As BigInteger = CType(Double.MaxValue, BigInteger)  
badDouble = badDouble * 2

Dim doubleFromBigInteger As Double

' Convert using CType function.
doubleFromBigInteger = CType(goodDouble, Double)
Console.WriteLine(doubleFromBigInteger)
' Convert using CDbl function.
doubleFromBigInteger = CDbl(goodDouble)
Console.WriteLine(doubleFromBigInteger)

' Convert an out-of-bounds BigInteger value to a Double.
doubleFromBigInteger = CType(badDouble, Double)
Console.WriteLine(doubleFromBigInteger)

注釈

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 言語コンパイラでは、データが失われる可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行し CDbl ます。

値は BigInteger データ型の範囲外になる可能性があるため Double 、この操作は縮小変換です。 変換に失敗した場合、はスローされません OverflowException 。 代わりに、 BigInteger 値がより小さい場合、 Double.MinValue 結果の Double 値はに Double.NegativeInfinity なります。 BigInteger値がより大きい場合 Double.MaxValue 、結果の Double 値はに Double.PositiveInfinity なります。

からへの変換には、 BigInteger Double 精度の低下が伴います。 場合によっては、精度が失われると、 BigInteger 値がデータ型の範囲外にあってもキャストまたは変換操作が成功する可能性があり Double ます。 具体的な例を次に示します。 ここでは、の最大値を Double 2 つの変数に割り当て BigInteger 、1つの BigInteger 変数を 9.999 e291 でインクリメントし、2つの変数が等しいかどうかをテストします。 予期したとおりに、メソッドを呼び出すと、 BigInteger.Equals(BigInteger) 両者が等しくないことが示されます。 ただし、大きい値からへの変換は成功しますが、 BigInteger Double 値はを BigInteger 超え Double.MaxValue ます。

// Increase a BigInteger so it exceeds Double.MaxValue.
BigInteger number1 = (BigInteger) Double.MaxValue;
BigInteger number2 = number1;
number2 = number2 + (BigInteger) 9.999e291;
// Compare the BigInteger values for equality.
Console.WriteLine("BigIntegers equal: {0}", number2.Equals(number1));

// Convert the BigInteger to a Double.
double dbl = (double) number2;

// Display the two values.
Console.WriteLine("BigInteger: {0}", number2);
Console.WriteLine("Double:     {0}", dbl);
// The example displays the following output:
//       BigIntegers equal: False
//       BigInteger: 1.7976931348623158081352742373E+308
//       Double:     1.79769313486232E+308
' Increase a BigInteger so it exceeds Double.MaxValue.
Dim number1 As BigInteger = CType(Double.MaxValue, BigInteger)
Dim number2 As BigInteger = number1
number2 = number2 + 9.999e291
' Compare the BigInteger values for equality.
Console.WriteLine("BigIntegers equal: {0}", number2.Equals(number1))

' Convert the BigInteger to a Double.
Dim dbl As Double = CType(number2, Double)

' Display the two values.
Console.WriteLine("BigInteger: {0}", number2)
Console.WriteLine("Double:     {0}", dbl)      
' The example displays the following output:
'       BigIntegers equal: False
'       BigInteger: 1.7976931348623158081352742373E+308
'       Double:     1.79769313486232E+308

適用対象

Explicit(BigInteger to Decimal)

BigInteger オブジェクトから Decimal 値への明示的な変換を定義します。

public:
 static explicit operator System::Decimal(System::Numerics::BigInteger value);
public static explicit operator decimal (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> decimal
Public Shared Narrowing Operator CType (value As BigInteger) As Decimal

パラメーター

value
BigInteger

Decimal へと変換する値。

戻り値

Decimal

value パラメーターの値を格納しているオブジェクト。

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、を値に変換する方法を示してい BigInteger Decimal ます。 また、 OverflowException BigInteger 値がデータ型の範囲外であるためにスローされるを処理 Decimal します。

// BigInteger to Decimal conversion.
BigInteger goodDecimal = 761652543;
BigInteger badDecimal = (BigInteger) Decimal.MaxValue;
badDecimal += BigInteger.One;

Decimal decimalFromBigInteger;

// Successful conversion using cast operator.
decimalFromBigInteger = (decimal) goodDecimal;
Console.WriteLine(decimalFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   decimalFromBigInteger = (decimal) badDecimal;
   Console.WriteLine(decimalFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badDecimal, e.Message);
}
Console.WriteLine();
' BigInteger to Decimal conversion.
Dim goodDecimal As BigInteger = 761652543
Dim badDecimal As BigInteger = CType(Decimal.MaxValue, BigInteger) 
badDecimal += BigInteger.One

Dim decimalFromBigInteger As Decimal

' Convert using CType function.
decimalFromBigInteger = CType(goodDecimal, Decimal)
Console.WriteLine(decimalFromBigInteger)
' Convert using CDec function.
decimalFromBigInteger = CDec(goodDecimal)
Console.WriteLine(decimalFromBigInteger)

' Handle conversion that should result in overflow.
Try
   decimalFromBigInteger = CType(badDecimal, Decimal)
   Console.WriteLine(decimalFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badDecimal, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 言語コンパイラでは、データが失われる可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行し CDec ます。

この操作は縮小変換を定義するので、 OverflowException BigInteger 値がデータ型の範囲外の場合は、実行時にをスローすることができ Decimal ます。

適用対象

Explicit(BigInteger to Byte)

BigInteger オブジェクトから符号なしバイト値への明示的な変換を定義します。

public:
 static explicit operator System::Byte(System::Numerics::BigInteger value);
public static explicit operator byte (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> byte
Public Shared Narrowing Operator CType (value As BigInteger) As Byte

パラメーター

value
BigInteger

Byte へと変換する値。

戻り値

Byte

value パラメーターの値を格納しているオブジェクト。

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、を値に変換する方法を示してい BigInteger Byte ます。 また、 OverflowException BigInteger 値がデータ型の範囲外であるためにスローされるを処理 Byte します。

// BigInteger to Byte conversion.
BigInteger goodByte = BigInteger.One;
BigInteger badByte = 256;

byte byteFromBigInteger;

// Successful conversion using cast operator.
byteFromBigInteger = (byte) goodByte;
Console.WriteLine(byteFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   byteFromBigInteger = (byte) badByte;
   Console.WriteLine(byteFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badByte, e.Message);
}
Console.WriteLine();
' BigInteger to Byte conversion.
Dim goodByte As BigInteger = BigInteger.One
Dim badByte As BigInteger = 256

Dim byteFromBigInteger As Byte   

' Convert using CType function.
byteFromBigInteger = CType(goodByte, Byte)
Console.WriteLine(byteFromBigInteger)
' Convert using CByte function.
byteFromBigInteger = CByte(goodByte)
Console.WriteLine(byteFromBigInteger)

' Handle conversion that should result in overflow.
Try
   byteFromBigInteger = CType(badByte, Byte)
   Console.WriteLine(byteFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badByte, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 言語コンパイラでは、データが失われる可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行し CByte ます。 それ以外の場合は、コンパイラエラーが表示されます。

この操作は縮小変換を定義するので、 OverflowException BigInteger 値がデータ型の範囲外の場合は、実行時にをスローすることができ Byte ます。 Byte変換が成功した場合、結果の値には精度が失われません。

適用対象

Explicit(Double to BigInteger)

Double 値から BigInteger 値への明示的な変換を定義します。

public:
 static explicit operator System::Numerics::BigInteger(double value);
public static explicit operator System.Numerics.BigInteger (double value);
static member op_Explicit : double -> System.Numerics.BigInteger
Public Shared Narrowing Operator CType (value As Double) As BigInteger

パラメーター

value
Double

BigInteger へと変換する値。

戻り値

BigInteger

value パラメーターの値を格納しているオブジェクト。

例外

valueNaNPositiveInfinity、または NegativeInfinity です。

次の例では、値の配列内の個々の要素 Double をオブジェクトに変換し、 BigInteger 各変換の結果を表示します。 値の小数部分 Double は変換中に切り捨てられることに注意してください。

double[] doubles = { Double.MinValue, -1.430955172e03, 2.410970032e05,
                     Double.MaxValue, Double.PositiveInfinity,
                     Double.NegativeInfinity, Double.NaN };
BigInteger number;

Console.WriteLine("{0,37} {1,37}\n", "Double", "BigInteger");

foreach (double value in doubles)
{
   try {
      number = (BigInteger) value;
      Console.WriteLine("{0,37} {1,37}", value, number);
   }
   catch (OverflowException) {
      Console.WriteLine("{0,37} {1,37}", value, "OverflowException");
   }
}
// The example displays the following output:
//                                Double                            BigInteger
//
//                -1.79769313486232E+308  -1.7976931348623157081452742373E+308
//                          -1430.955172                                 -1430
//                           241097.0032                                241097
//                 1.79769313486232E+308   1.7976931348623157081452742373E+308
//                              Infinity                     OverflowException
//                             -Infinity                     OverflowException
//                                   NaN                     OverflowException
Dim doubles() As Double = { Double.MinValue, -1.430955172e03, 2.410970032e05, 
                            Double.MaxValue, Double.PositiveInfinity, 
                            Double.NegativeInfinity, Double.NaN }
Dim number As BigInteger

Console.WriteLine("{0,37} {1,37}", "Double", "BigInteger")
Console.WriteLine()
For Each value As Double In doubles
   Try
      number = CType(value, BigInteger)
      Console.WriteLine("{0,37} {1,37}", value, number)
   Catch e As OverflowException
      Console.WriteLine("{0,37} {1,37}", value, "OverflowException")
   End Try      
Next
' The example displays the following output:
'                                Double                            BigInteger
' 
'                -1.79769313486232E+308  -1.7976931348623157081452742373E+308
'                          -1430.955172                                 -1430
'                           241097.0032                                241097
'                 1.79769313486232E+308   1.7976931348623157081452742373E+308
'                              Infinity                     OverflowException
'                             -Infinity                     OverflowException
'                                   NaN                     OverflowException

注釈

パラメーターの小数部分 value は、変換前に切り捨てられます。

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 からへの変換では、 Double BigInteger の小数部分が切り捨てられることがあるため value 、言語コンパイラでは、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行します。 それ以外の場合は、コンパイラエラーが表示されます。

カスタム演算子をサポートしていない言語の場合、代替方法は BigInteger.BigInteger(Double) です。

適用対象

Explicit(Decimal to BigInteger)

Decimal オブジェクトから BigInteger 値への明示的な変換を定義します。

public:
 static explicit operator System::Numerics::BigInteger(System::Decimal value);
public static explicit operator System.Numerics.BigInteger (decimal value);
static member op_Explicit : decimal -> System.Numerics.BigInteger
Public Shared Narrowing Operator CType (value As Decimal) As BigInteger

パラメーター

value
Decimal

BigInteger へと変換する値。

戻り値

BigInteger

value パラメーターの値を格納しているオブジェクト。

次の例では、値の配列内の個々の要素 Decimal をオブジェクトに変換し、 BigInteger 各変換の結果を表示します。 値の小数部分 Decimal は変換中に切り捨てられることに注意してください。

decimal[] decimals = { Decimal.MinValue, -15632.991m, 9029321.12m,
                       Decimal.MaxValue };
BigInteger number;

Console.WriteLine("{0,35} {1,35}\n", "Decimal", "BigInteger");

foreach (decimal value in decimals)
{
   number = (BigInteger) value;
   Console.WriteLine("{0,35} {1,35}", value, number);
}
// The example displays the following output:
//
//                          Decimal                          BigInteger
//
//    -79228162514264337593543950335      -79228162514264337593543950335
//                       -15632.991                              -15632
//                       9029321.12                             9029321
//    79228162514264337593543950335       79228162514264337593543950335
' Explicit Decimal to BigInteger conversion
Dim decimals() As Decimal = { Decimal.MinValue, -15632.991d, 9029321.12d, 
                              Decimal.MaxValue }
Dim number As BigInteger 

Console.WriteLine("{0,35} {1,35}", "Decimal", "BigInteger")
Console.WriteLine()
For Each value As Decimal In decimals
   number = CType(value, BigInteger)
   Console.WriteLine("{0,35} {1,35}",
                     value, number)
Next
' The example displays the following output:
'
'                          Decimal                          BigInteger
'    
'    -79228162514264337593543950335      -79228162514264337593543950335
'                       -15632.991                              -15632
'                       9029321.12                             9029321
'    79228162514264337593543950335       79228162514264337593543950335

注釈

パラメーターの小数部分 value は、変換前に切り捨てられます。

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 からへの変換では、 Decimal BigInteger の小数部分が切り捨てられることがあるため value 、言語コンパイラでは、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C# の場合) または変換関数 ( CType Visual Basic など) が使用されている場合にのみ変換を実行します。 それ以外の場合は、コンパイラエラーが表示されます。

カスタム演算子をサポートしていない言語の場合、代替方法は BigInteger.BigInteger(Decimal) です。

適用対象

Explicit(BigInteger to Int32)

BigInteger オブジェクトから 32 ビット符号付き整数値への明示的な変換を定義します。

public:
 static explicit operator int(System::Numerics::BigInteger value);
public static explicit operator int (System.Numerics.BigInteger value);
static member op_Explicit : System.Numerics.BigInteger -> int
Public Shared Narrowing Operator CType (value As BigInteger) As Integer

パラメーター

value
BigInteger

32 ビット符号付き整数に変換する値。

戻り値

Int32

value パラメーターの値を格納しているオブジェクト。

例外

valueMinValue より小さいか MaxValue より大きいです。

次の例は、 から 値への変換 BigInteger を示 Int32 しています。 また、値 OverflowException がデータ型の範囲内にないのでスローされる BigIntegerInt32 処理します。

// BigInteger to Int32 conversion.
BigInteger goodInteger = 200000;
BigInteger badInteger = 65000000000;

int integerFromBigInteger;

// Successful conversion using cast operator.
integerFromBigInteger = (int) goodInteger;
Console.WriteLine(integerFromBigInteger);

// Handle conversion that should result in overflow.
try
{
   integerFromBigInteger = (int) badInteger;
   Console.WriteLine(integerFromBigInteger);
}
catch (OverflowException e)
{
   Console.WriteLine("Unable to convert {0}:\n   {1}",
                     badInteger, e.Message);
}
Console.WriteLine();
' BigInteger to Int32 conversion.
Dim goodInteger As BigInteger = 200000
Dim badInteger As BigInteger = 65000000000

Dim integerFromBigInteger As Integer

' Convert using CType function.
integerFromBigInteger = CType(goodInteger, Integer)
Console.WriteLine(integerFromBigInteger)
' Convert using CInt function.
integerFromBigInteger = CInt(goodInteger)
Console.WriteLIne(integerFromBigInteger)

' Handle conversion that should result in overflow.
Try
   integerFromBigInteger = CType(badInteger, Integer)
   Console.WriteLine(integerFromBigInteger)
Catch e As OverflowException
   Console.WriteLine("Unable to convert {0}:{1}   {2}", _
                     badInteger, vbCrLf, e.Message)
End Try
Console.WriteLine()

注釈

メソッドのオーバーロードは、 Explicit(Decimal to BigInteger) オブジェクトの変換元となる、またはオブジェクトを変換元となる型を定義し BigInteger ます。 言語コンパイラでは、データ損失が発生する可能性があるため、この変換は自動的には実行されません。 代わりに、キャスト演算子 (C#) または変換関数 (例: または Visual Basic) が使用されている場合にのみ、変換 CType CInt が実行されます。 それ以外の場合は、コンパイラ エラーが表示されます。

この操作では縮小変換が定義されます。値がデータ型の範囲を外している場合、実行時に が OverflowException BigInteger Int32 スローされる可能性があります。 変換が成功した場合、結果の Int32 値の有効桁数は失われる可能性はありません。

適用対象