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.

Type (Tipo)

Pode ser convertida sem perda de dados para

Byte

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

SByte

Int16 , Int32 , Int64 , único 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 conversões ampliadoras para Single ou Double pode causar perda de precisão.A tabela a seguir descreve as conversões ampliadoras que às vezes resultam em perda de informações.

Type (Tipo)

Pode ser convertido em

Int32

Single

UInt32

Single

Int64

Single , Double

UInt64

Single , Double

Decimal

Single , Double

Conversões Redutoras

Uma conversão redutora para Single ou Double pode causar perda de informações.Se o tipo de destino não pode expressar corretamente a magnitude da origem, então o tipo resultante é definido como uma constante PositiveInfinity ou NegativeInfinity .O valor de PositiveInfinity é o resultado da divisão de um número positivo por zero e é retornado quando o valor de uma Single ou Double excede o valor do campo de MaxValue.O valor de PositiveInfinity é o resultado da divisão de um número positivo por zero e é retornado quando o valor de uma Single ou Double excede o valor do campo de MaxValue.Uma conversão de uma Double em 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.Entretanto, se o valor de um tipo que está sendo convertido ficar fora do intervalo especificado pelo tipo de destino MaxValue e MinValue campos, e a conversão estiver definida com tempo de execução, para garantir que o valor do tipo de destino não exceda sua MaxValue ou MinValue então uma OverflowException é acionada.Conversões executadas com a classe System.Convert sempre são verificadas dessa maneira.Para obter informações sobre como executar conversões verificadas sem usar System.Convert ,consulte a seção Conversão explícita.

A tabela a seguir lista as conversões que acionam uma OverflowExceptionusandoSystem.Convert ou qualquer conversão verificada, se o valor do tipo que está sendo convertido estiver fora do intervalo definido pelo tipo resultante.

Type (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

Outros recursos

Convertendo tipos