Compartilhar via


Tabelas de Conversão de Tipos

Conversões ampliadoras ocorrem quando um valor de um tipo é convertido em outro tipo de tamanho maior ou igual. Conversões redutoras ocorrem quando um valor de um tipo é convertido em outro tipo de menor tamanho. As tabelas contidas neste tópico ilustram os comportamentos exibidos por ambos os tipos de conversões.

Conversões Ampliadoras

A tabela a seguir descreve as conversões ampliadoras que podem ser executadas sem perda de informações.

Tipo

Pode ser convertida sem perda de dados para

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

Alguns alargamento conversões para Single ou Double pode causar uma perda de precisão. A tabela a seguir descreve as conversões ampliadoras que às vezes resultam em perda de informações.

Tipo

Pode ser convertido em

Int32

Single

UInt32

Single

Int64

Single, Double

UInt64

Single, Double

Decimal

Single, Double

Conversões Redutoras

Uma conversão de restrição para Single ou Double pode causar a perda de informações. Se o tipo de destino corretamente não pode expressar a magnitude da fonte, o tipo resultante é definido como a constante PositiveInfinity ou NegativeInfinity. PositiveInfinityresulta de um número positivo de divisão por zero e também é retornado quando o valor de um Single ou Double excede o valor da MaxValue campo. NegativeInfinityresulta de um número negativo de divisão por zero e também é retornado quando o valor de um Single ou Double cai abaixo do valor da MinValue campo. Uma conversão de um Double para um Single pode resultar em PositiveInfinity ou NegativeInfinity.

Uma conversão redutora também pode resultar em perda de informações para outros tipos de dados. No entanto, um OverflowException é lançada se o valor de um tipo que está sendo convertidas quedas fora do intervalo especificado pelo tipo de destino MaxValue e MinValue campos e a conversão é verificado pelo tempo de execução para garantir que o valor do tipo de destino não exceda seu MaxValue ou MinValue. Conversões são realizadas com o System.Convert classe são sempre verificados na forma.

A tabela a seguir lista conversões lançam um OverflowException usando System.Convert ou qualquer conversão verificado se o valor do tipo que está sendo convertido é fora do intervalo definido do tipo resultante.

Tipo

Pode ser convertido em

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

Consulte também

Referência

System.Convert

Conceitos

Digite a conversão na.NET Framework