Explicit Numeric Conversions Table (C# Reference)
A conversão numérica explícita é utilizada para converter dados de qualquer tipo numérico para qualquer outro tipo numérico para o qual haja conversão implícita, usando uma expressão uma expressão de conversão. A tabela a seguir mostra estas conversões.
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 resultar no acionamento de exceções.
Quando você converte um decimal o valor para um tipo integral, esse valor é arredondado em direção a zero para o valor inteiro mais próximo. Se o valor inteiro resultante está fora do intervalo do tipo de destino, um OverflowException é lançada.
Quando você converter de um double ou float o valor para um tipo integral, o valor é truncado. Se o valor inteiro resultante estiver fora do intervalo do valor de destino, o resultado dependerá do contexto de verificação de estouro. Em um contexto marcada, um OverflowException é lançada, embora em um contexto desmarcado, o resultado é um valor não especificado do tipo de destino.
Quando você converte double para float, o double valor é arredondado para o mais próximo float valor. Se o double valor é muito pequeno ou grande demais para caber no tipo de destino, o resultado será zero ou infinito.
Quando você converte float ou double para decimal, o valor de origem é convertido para decimal representação e arredondado para o próximo número após o lugar de decimal de 28, se necessário. Dependendo com o valor do valor de origem, um dos resultados a seguir pode ocorrer:
Se o valor de origem é muito pequeno para ser representado como uma decimal, o resultado será zero.
Se o valor de origem for NaN (e não um número), infinito, ou muito grande para ser representado como uma decimal, um OverflowException é lançada.
Quando você converte decimal para float ou double, o decimal valor é arredondado para o mais próximo double ou float valor.
Para obter mais informações sobre a conversão explícita, consulte explícito na especificação de linguagem C#. Para obter mais informações sobre como acessar a especificação, consulte C# Language Specification.
Consulte também
Referência
Elenco e conversões de Tipo (guia de programação de C#)
Operador de () (C# referência)
Integral Types Table (C# Reference)
Built-In Types Table (C# Reference)
Implicit Numeric Conversions Table (C# Reference)