次の方法で共有


型変換の表

拡大変換は、ある型の値をそれよりサイズが大きいかまたは等しい別の型に変換するときに実行されます。 縮小変換は、ある型の値をそれよりサイズが小さい別の型の値に変換するときに実行されます。 このトピックの表では、この 2 種類の変換の動作を示します。

拡大変換

情報を失わずに実行できる拡大変換について次の表にまとめます。

データを失わない変換後の型

Byte

UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

SByte

Int16, Int32, Int64, Single, Double, Decimal

Int16

Int32, Int64, Single, Double, Decimal

UInt16

UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Char

UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Int32

Int64, Double, Decimal

UInt32

Int64, Double, Decimal

Int64

Decimal

UInt64

Decimal

Single

Double

Single または Double への拡大変換では、精度が失われることがあります。 情報が失われる可能性のある拡大変換について次の表にまとめます。

変換後の型

Int32

Single

UInt32

Single

Int64

Single, Double

UInt64

Single, Double

Decimal

Single, Double

縮小変換

Single または Double への縮小変換では、情報が失われることがあります。 変換先の型が変換元の絶対値を正確に表現できない場合、結果の型は定数 PositiveInfinity または NegativeInfinity に設定されます。 PositiveInfinity の値は、正の数を 0 で除算した結果であり、Single または Double の値が MaxValue フィールドの値を上回った場合にも返されます。 NegativeInfinity の値は、負の数を 0 で除算した結果であり、Single または Double の値が MinValue フィールドの値を下回った場合にも返されます。 Double から Single に変換すると、結果が PositiveInfinity または NegativeInfinity になります。

ほかのデータ型の縮小変換でも、情報が失われることがあります。 ただし、変換結果の型の値が、変換先の型の MaxValue フィールドおよび MinValue フィールドで指定されている範囲外になる場合は OverflowException がスローされ、変換先の型の値が MaxValue または MinValue を超えないことを保証するためにランタイムによってその変換がチェックされます。 System.Convert クラスを使用して実行される変換は、必ずこの方法でチェックされます。

System.Convert を使用した変換や、チェックを伴うその他の変換で、変換結果の型の値が結果の型で定義されている範囲外の値になる場合に OverflowException がスローされるケースを次の表にまとめます。

変換後の型

Byte

SByte

SByte

Byte, UInt16, UInt32, UInt64

Int16

Byte, SByte, UInt16

UInt16

Byte, SByte, Int16

Int32

Byte, SByte, Int16, UInt16,UInt32

UInt32

Byte, SByte, Int16, UInt16, Int32

Int64

Byte, SByte, Int16, UInt16, Int32,UInt32,UInt64

UInt64

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64

Decimal

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Single

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

Double

Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64

参照

参照

System.Convert

概念

.NET Framework における型変換