明示的な数値変換の一覧表 (C# リファレンス)

暗黙の型変換が行われない場合に、明示的な数値の変換を行います。キャスト式を使用して任意の数値型を他の数値型に変換します。 これらの変換を次に示します。

変換前

変換後

sbyte

byte、ushort、uint、ulong、または char

byte

Sbyte または char

short

sbyte、 byte、 ushort、 uint、 ulong、または char

ushort

sbyte、 byte、 short、または char

int

sbyte、 byte、 short、 ushort、 uint、 ulong、または char

uint

sbyte、byte、 short、 ushort、 int、または char

long

sbyte、 byte、 short、 ushort、 int、 uint、 ulong、または char

ulong

sbyte、 byte、 short, ushort、 int、 uint、 long、または char

char

sbyte、byte、または short

float

sbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、または decimal

double

sbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float、 または decimal

decimal

sbyte、 byte、 short、 ushort、 int、 uint、 long、 ulong、 char、 float、または double

解説

  • 明示的な数値変換によって、有効桁数が桁落ちしたり、例外がスローされる場合があります。

  • decimal 値を整数型に変換すると、値は一番近い整数値に丸められます。 結果の整数値が変換先の型の範囲を超えた場合は、OverflowException がスローされます。

  • double 値または float 値を整数型に変換すると、値が切り捨てられます。 整数値が、変換後の値の範囲を超えた場合は、オーバーフロー チェック コンテキストに従います。 checked コンテキストでは、OverflowException がスローされます。これに対して、unchecked コンテキストでは、変換後の型の未指定値に変換されます。

  • double から float への変換では、double 値は最も近い float 値に丸められます。 double 値が、変換後の型の範囲外であるため格納できない場合は、0 または無限大になります。

  • float または double から decimal への変換では、変換前の値が decimal 表記に変換され、必要に応じて小数第 28 位までの近似値に丸められます。 変換元の値に応じて、次のいずれかが生じる場合があります。

    • 変換元の値が小さすぎて decimal で表すことができない場合、結果は 0 になります。

    • 変換元の値が非数 (NaN)、無限大、または大きすぎて decimal で表すことができない場合は、OverflowException がスローされます。

  • decimal から float または double への変換では、decimal 値は最も近い double 値または float 値に丸められます。

明示的な変換の詳細については、『C# 言語仕様』の「明示的な変換」を参照してください。 仕様にアクセスする方法の詳細については、「C# 言語仕様」を参照してください。

参照

参照

キャストと型変換 (C# プログラミング ガイド)

() 演算子 (C# リファレンス)

整数型の一覧表 (C# リファレンス)

組み込み型の一覧表 (C# リファレンス)

暗黙的な数値変換の一覧表 (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

C# リファレンス