Share via


型変換の表

更新 : 2007 年 11 月

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

拡大変換

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

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

Byte

UInt16Int16UInt32Int32UInt64Int64SingleDoubleDecimal

SByte

Int16Int32Int64SingleDoubleDecimal

Int16

Int32Int64SingleDoubleDecimal

UInt16

UInt32Int32UInt64Int64SingleDoubleDecimal

Char

UInt16UInt32Int32UInt64Int64SingleDoubleDecimal

Int32

Int64DoubleDecimal

UInt32

Int64DoubleDecimal

Int64

Decimal

UInt64

Decimal

Single

Double

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

変換後の型

Int32

Single

UInt32

Single

Int64

SingleDouble

UInt64

SingleDouble

Decimal

SingleDouble

縮小変換

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

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

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

変換後の型

Byte

SByte

SByte

ByteUInt16UInt32UInt64

Int16

ByteSByteUInt16

UInt16

ByteSByteInt16

Int32

ByteSByteInt16UInt16UInt32

UInt32

ByteSByteInt16UInt16Int32

Int64

ByteSByteInt16UInt16Int32UInt32UInt64

UInt64

ByteSByteInt16UInt16Int32UInt32Int64

Decimal

ByteSByteInt16UInt16Int32UInt32Int64UInt64

Single

ByteSByteInt16UInt16Int32UInt32Int64UInt64

Double

ByteSByteInt16UInt16Int32UInt32Int64UInt64

参照

参照

System.Convert

その他の技術情報

型の変換