Tabela de conversões numérico explícita (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 Elenco e conversões de tipo (guia de programação do 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 de linguagem do C#.
Consulte também
Referência
Elenco e conversões de tipo (guia de programação do C#)
Tabela de tipos integral (referência de C#)
Tabela de tipos internos (referência de C#)
Tabela de conversões numérico implícito (referência de C#)