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 |
---|---|
UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
|
UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal |
|
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 |
---|---|
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 |
---|---|