.NET の型変換の表
拡大変換は、1 つの型の値が、サイズが同じかそれ以上の別の型に変換されるときに発生します。 縮小変換は、1 つの型の値が、サイズがより小さい別の型の値に変換されるときに発生します。 このトピックの表は、両方の種類の変換の動作を示しています。
拡大変換
次の表は、情報を失うことなく実行できる拡大変換を示しています。
種類 | データ損失なしに次の型に変換可能 |
---|---|
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, UInt64, 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 |
関連項目
.NET