Converter um tipo de dado em número ou em literal é comum em situações de

programação. Quando esta aplicação for destinada a Web com intervenções de

internautas, esse recurso é utilizado com mais freqüência ainda. É comum o

internauta testar a aplicação para ter certeza que o desenvolvedor se preocupou

com as devidas conversões de valores.

Devemos considerar alguns aspectos para a conversão de números:

·         Como existem diversos tipos de números, inteiros, ponto flutuante ou

decimal, os valores são convertidos sempre para o tipo de maior

faixa de valores. Por exemplo, o tipo long é convertido para o ponto

flutuante, mais é importante ressaltar que o contrario causa um erro.

·         Os tipos de menor faixa são convertidos para os de maior faixa. Por

exemplo, o tipo int pode ser convertido para: long, float, double ou

decimal.

·         A conversão dos tipos de ponto flutuante(float, double) para decimal

causa erro.

·         A conversão entre os tipos com sinal e sem sinal de valores inteiros

com o mesmo tamanho causa erro. Por exemplo, entre o tipo int e

unit.

Caso precise forçar uma conversão mesmo que haja perda de informações, a

linguagem disponibiliza um operador com este recurso.

 

int VarValor = (int)8544555L;

·         Neste caso a variável inteira vai receber o quanto poder

suportar do tipo long.

long VarValor = (long)29.145;

·         Neste caso a variável inteira do tipo long suportará o

quanto for possível do número não inteiro.

Em alguns casos os tipos de conversão não precisam ser especificados pelo

desenvolvedor, essa conversão é feita automaticamente.

Checked e Unchecked

 

Toda conversão pode causar erro , mas existe uma forma de forçar a conversão

sem que cause um erro. Para isso são utilizados o checked e o unchecked.

 

Veja a saída deste programa:

 

using System;

public class Checar

{

public static void Main()

{

int X = 2147483647;

int Y = 2;

int Produto = 0;

unchecked

{

Produto = X * Y;

Console.WriteLine("Resultado da Conversão: "+Produto); // retorna -2

}

checked

{

try

{

Produto = X * Y;

Console.WriteLine("Resultado da Conversão: "+Produto);

// Causa erro na compilação

}

catch(OverflowException e)

{

Console.WriteLine("Mensagem de Erro: "+e.ToString());

}

}

}

Bem, é isso, espero que este artigo tenha sido útil para os seus estudos, obrigado pela atenção e até a próxima.

Jefferson Araújo.

Contato: tecjefferson@hotmail.com