Bagikan melalui


Ketik tabel konversi di .NET

Pelebaran konversi terjadi ketika nilai satu jenis dikonversi ke jenis lain yang berukuran sama atau lebih besar. Konversi penyempitan terjadi ketika nilai satu jenis dikonversi ke nilai jenis lain yang berukuran lebih kecil. Tabel dalam topik ini menggambarkan perilaku yang ditunjukkan oleh kedua jenis konversi.

Melebarkan konversi

Tabel berikut menjelaskan konversi pelebaran yang dapat dilakukan tanpa kehilangan informasi.

Jenis Dapat dikonversi tanpa kehilangan data ke
Byte UInt16, , UInt32Int16, Int32, UInt64, Int64, Single, , Double,Decimal
SByte Int16, , Int32Int64, Single, , Double,Decimal
Int16 Int32, , Int64Single, , Double,Decimal
UInt16 UInt32, , Int32UInt64, Int64, Single, , Double,Decimal
Char UInt16, , Int32UInt32, UInt64, Int64, Single, , Double,Decimal
Int32 Int64, , DoubleDecimal
UInt32 Int64, , UInt64Double,Decimal
Int64 Decimal
UInt64 Decimal
Single Double

Beberapa konversi pelebaran ke Single atau Double dapat menyebabkan hilangnya presisi. Tabel berikut menjelaskan konversi yang melebar yang terkadang mengakibatkan hilangnya informasi.

Jenis Dapat dikonversi ke
Int32 Single
UInt32 Single
Int64 Single, Double
UInt64 Single, Double
Decimal Single, Double

Konversi yang mempersempit

Konversi yang mempersempit ke Single atau Double dapat menyebabkan hilangnya informasi. Jika jenis target tidak dapat mengekspresikan besaran sumber dengan benar, jenis yang dihasilkan diatur ke konstanta PositiveInfinity atau NegativeInfinity. PositiveInfinityhasil dari pembagian angka positif dengan nol dan juga dikembalikan ketika nilai Single atau Double melebihi nilai MaxValue bidang. NegativeInfinityhasil dari pembagian angka positif dengan nol dan juga dikembalikan ketika nilai Single atau Double melebihi nilai MinValue bidang. Konversi dari Double ke Single mungkin mengakibatkan PositiveInfinity atau NegativeInfinity.

Konversi penyempitan juga dapat mengakibatkan hilangnya informasi untuk jenis data lainnya. Namun, OverflowException dilepaskan jika nilai jenis yang sedang dikonversi berada di luar rentang yang ditentukan oleh jenis MaxValue target dan MinValue bidang, dan konversi diperiksa oleh runtime untuk memastikan bahwa nilai jenis target tidak melebihi MaxValue atau MinValue. Konversi yang dilakukan dengan kelas selalu diperiksa dengan System.Convert cara ini.

Tabel berikut mencantumkan konversi yang melepaskan OverflowException konversi menggunakan System.Convert atau konversi yang dicentang jika nilai jenis yang dikonversi berada di luar rentang yang ditentukan dari jenis yang dihasilkan.

Jenis Dapat dikonversi ke
Byte SByte
SByte Byte, , UInt16UInt32,UInt64
Int16 Byte, , SByteUInt16
UInt16 Byte, , SByteInt16
Int32 Byte, , SByteInt16, , UInt16,UInt32
UInt32 Byte, , SByteInt16, , UInt16,Int32
Int64 Byte, , SByteInt16, UInt16, Int32, ,UInt32 , ,UInt64
UInt64 Byte, , SByteInt16, UInt16, Int32, , UInt32,Int64
Decimal Byte, , Int16SByte, UInt16, Int32, UInt32, , Int64,UInt64
Single Byte, , Int16SByte, UInt16, Int32, UInt32, , Int64,UInt64
Double Byte, , Int16SByte, UInt16, Int32, UInt32, , Int64,UInt64

Lihat juga