Tabela de conversões numéricas explícitas (Referência de C#)
Conversão numérica explícita é usado para converter qualquer tipo numérico para qualquer outro tipo numérico, para o qual não há nenhuma conversão implícita, usando uma expressão de conversão. A tabela a seguir mostra essas conversões.
Para obter mais informações sobre conversões, consulte Conversões cast e conversões de tipo (Guia de Programação em C#).
From |
Para |
---|---|
byte, ushort, uint, ulong, ou char |
|
Sbyteouchar |
|
sbyte, byte, ushort, uint, ulong, or char |
|
sbyte, byte, short, or char |
|
sbyte, byte, short, ushort, uint, ulong,or char |
|
sbyte, byte, short, ushort, int, or char |
|
sbyte, byte, short, ushort, int, uint, ulong, or char |
|
sbyte, byte, short, ushort, int, uint, long, or char |
|
sbyte, byte, or short |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char,or decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float,or decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, or double |
Comentários
A conversão numérica explícita pode causar perda de precisão ou resultado throwing exceções.
Quando você converter uma decimal valor de tipo integral, esse valor é arredondado em direção a zero para o valor inteiro mais próximo. Se o valor integral resultante está fora do intervalo do tipo de destino, um OverflowException é lançada.
Quando você converter de um double ou float valor para um tipo integral, o valor é truncado. Se o valor integral resultante está fora do intervalo do valor de destino, o resultado depende o estouro de verificação de contexto. Em um contexto marcada, um OverflowException é lançada, embora em um contexto desmarcado, o resultado é um valor não especificado no tipo de destino.
Quando você converter double para float, o double valor é arredondado para o mais próximo float valor. Se o double valor é muito pequeno ou muito grande para caber no tipo de destino, o resultado será zero ou infinito.
Quando você converter float ou double para decimal, o valor de origem é convertido em decimal representação e arredondado para o próximo número após a casa decimal 28, se necessário. Dependendo do valor do valor de origem, pode ocorrer um dos seguintes resultados:
Se o valor de origem é muito pequeno para ser representado como uma decimal, o resultado se torna zero.
Se o valor de origem for NaN (não um número), infinito, ou muito grande para ser representado como uma decimal, um OverflowException é lançada.
Quando você converter decimal para float ou double, o decimal valor é arredondado para o mais próximo double ou float valor.
Para obter mais informações sobre conversão explícita, consulte Explicit na especificação de linguagem C#. Para obter mais informações sobre como acessar a especificação, consulte Especificação da linguagem C#.
Consulte também
Referência
Conversões cast e conversões de tipo (Guia de Programação em C#)
Operador () (Referência de C#)
Tabela de tipos integrais (Referência de C#)
Tabela de tipos internos (Referência de C#)
Tabela de conversões numéricas implícitas (Referência de C#)