[RESOLVIDO] Dúvida em long

5 respostas
T

Tentei compilar este simples código na minha máquina:

class VetorSimples
{
	public static void main(String...daudhai){

		long x = [telefone removido];

		System.out.printf("x: %d\n", x);
	}
}

Mas obtive o erro de compilação:

5: integer number too large: [telefone removido]
		long x = [telefone removido];
		         ^
1 error

Como isso é possível? :-o O tipo long tem 64bits (63 + 1 pro sinal)!!!

5 Respostas

renamed
class VetorSimples
{
	public static void main(String...daudhai){

		long x = [telefone removido];

		System.out.printf("x: %d\n", x);
	}
}

o número [telefone removido] é visto como um Integer e não como um Long… tente fazer isso (não sei se vai dar certo pq to sem IDE aqui)

class VetorSimples
{
	public static void main(String...daudhai){

		long x = 2147483648L; //Coloque um L do lado do numero

		System.out.printf("x: %d\n", x);
	}
}
T

Olá amigo,

De fato, colocando um L após o número funcionou. Mas, veja esse código:

class VetorSimples
{
	public static void main(String...daudhai){

		long x = 214748364846468456L;

		double f = 468f;

		System.out.printf("x: %d\nf: %f\n", x, f);
	}
}

Observe que, do tipo float para double, ele converte automaticamente, pois não haverá perda de precisão. Agora, porque não acontece o mesmo com o long? Ou seja, porque int para long ele não faz automaticamente? :shock:

evertonsilvagomesjav

todos numeros que vc digita com pontos flutuantes o compilador reconhece como double por isso pra usar float vc utiliza o 'f".

ViniGodoy

Ele faz sim.

Veja:

int x = 10;
long y = x;

ok.

Acontece que aquele “10”, escrito de maneira literal, é um int. E você não pode escrever ints tão grandes. Por isso, o “L” para dizer que o literal é um long.

T

ViniGodoy:
Ele faz sim.

Veja:

int x = 10;
long y = x;

ok.

Acontece que aquele “10”, escrito de maneira literal, é um int. E você não pode escrever ints tão grandes. Por isso, o “L” para dizer que o literal é um long.

Humm, ok. Essa do literal sempre ser um int matou a charada. Obrigado! :thumbup:

Criado 19 de janeiro de 2010
Ultima resposta 19 de jan. de 2010
Respostas 5
Participantes 4