Double recebendo Integer

4 respostas
S

Galera estou com um problema onde verias ser algo simples tah dando uma dor de cabeça, to aqui programando e o java não quer aceitar que uma variavel do tipo Double receba uma do tipo Integer;

int linha=50;

Double vxmax=linha;

isto ai da um erro de type, mas ele deveria aceitar normalmente não? deveria acontecer este erro se fosse o contrario estou certo??

e qual a diferença do tipo “double” e do tipo “Double”? valeu!!

4 Respostas

S

Em Java tens de fazer a conversão ou cast. Podes fazê-lo(cast) do seguinte modo:

int inteiro = 18;
double d = (double) inteiro;

double é um valor, Double é uma classe. Portanto double é um valor de um objecto da classe Double.

S

então quando eu quiser uma variavel do tipo double o melhor é definir ela com “double” e não com “Double”

S

Sim, para evitar possíveis confusões. Existem várias maneiras de definir um double:

Double D = new Double(15,323);
double d = 14.232;

Da mesma forma que podes definir uma variável int de duas formas:

Integer I = new Integer(15);
int i = 15;

Isto faz o mesmo, a principal diferença é que no primeiro caso de cada exemplo(que utilizam a palavra-chave “new”) tens acesso ao construtor da classe a que pertencem e portanto podes passar outros argumentos para o construror e desse modo modificar qualquer coisa.

P

vamos la, começando do começo…

existem os tipos primitivos de dados, e pra cada um deles existe uma classe Wrapper “equivalente”…por exemplo:

int - Integer
double - Double
float - Float
boolean - Boolean

eu evito o uso de tipos primitivos, por suas limitações…os Wrappers permitem a utilizações de métodos específicos que facilitam a vida, além de prover recursos da OOP…

normalmente os tipos primitivos são usados para cálucos matemáticos apenas…no caso de executarmos alguma conta, extraimos o valor do Wrapper com o tipo primitivo para efetuar um calculo, por exemplo:

Integer a = new Integer(10);
Integer b = new Integer(20);

Integer c = new Integer(a.intValue() + b.intValue());

mas ate isso ja estou deixando de lado, e estou utilizando os métodos da classe BigDecimal(add(), multiply(), etc…), q oferece precisão, ao contrario dos tipos Double e Float…

bom, espero ter ajudado…

flw

Criado 21 de julho de 2007
Ultima resposta 23 de jul. de 2007
Respostas 4
Participantes 3