Share via


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

sbyte

byte, ushort, uint, ulong, ou char

Byte

Sbyteouchar

short

sbyte, byte, ushort, uint, ulong, or char

ushort

sbyte, byte, short, or char

int

sbyte, byte, short, ushort, uint, ulong, or char

uint

sbyte, byte, short, ushort, int, or char

long

sbyte, byte, short, ushort, int, uint, ulong, or char

ulong

sbyte, byte, short, ushort, int, uint, long, or char

char

sbyte, byte, or short

float

sbyte, byte, short, ushort, int, uint, long, ulong, char, or decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float, or decimal

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)

Conceitos

C# Programming Guide

Outros recursos

C# Reference