Sigla "L" no Java

16 respostas
G

Olá pessoal.
Pode ser uma duvida meio amadora mas…
o q significa o “L” nesta expressão ?

long dias = dt / 86400000[color=red]L[/color];”

Obrigado !!!

16 Respostas

P

Long

:smiley:

G

hahahaha… sério ?
é só isso ?

rodrigoallemand

É sério… é só isso mesmo…
Do mesmo jeito que tb existe o F…

float teste = 1234F;
P

gremilin:
Olá pessoal.
Pode ser uma duvida meio amadora mas…
o q significa o “L” nesta expressão ?

long dias = dt / 86400000[color=red]L[/color];”

Obrigado !!!

agora q vc se meteu com isso ai, rs, tente explica o POR QUE do L ou F no final … :smiley:

abs

G

puxa… eu pensei que fosse algo sobrenatural…
hehehe…
só mais uma duvida:
pq eu precisaria por um “L” no final do numero se a variavel que está recebendo ela, já esta como Long ?
Pra que eu precisaria dizer denovo que aquele numero é um Long ?

Alkamavo

ai e existe o “E” também…n eskeçam dele…mauzinhos… :oops:

jjose

gremilin:
puxa… eu pensei que fosse algo sobrenatural…
hehehe…

tu esta certo
os desenvolvedores do java são guiados por forças macabras
cuidado

G

Puxa !!! que sobrenaturalidade !! hahahaha !! mto bom !!
mas ainda não me responderam o pq que o L é usado se a variavel já esta como long ?

P

gremilin:
Puxa !!! que sobrenaturalidade !! hahahaha !! mto bom !!
mas ainda não me responderam o pq que o L é usado se a variavel já esta como long ?

Cara,

A questão é a seguinte:

 Números inteiros são, por padrão, do tipo [b]int[/b].  números de ponto flutuante são, por padrão, [b]double[/b]. Então, se você escrever:
float f = 3.14;

vai levantar uma exceção, já que está atribuindo um double a uma variável float. Os seguintes códigos estão corretos:

float f = 3.14f;

ou

float f = (float)3.14

ou seja, é necessário fazer um cast de double para float.

 com relação a [b]int[/b]s e [b]long[/b]s, este casting não seria necessário de [b]int[/b] para [b]long[/b],  que um [b]int[/b] "cabe" em um [b]long[/b]. Neste caso, você usa o "l' (ou "L") apenas por questão de clareza.
P

[EDITADO]

MOTIVO: O CARA ACIMA RESPONDEU JÁ…DE FORMA MAIS CLARA… =)

T

Vou lhe explicar direitinho.

Java não quer saber se a variável já é long ou não; ele quer saber se cada elemento da expressão é long ou não. Se você tem um número

12

pela definição da linguagem esse número é um int, não um long ou um byte ou um char.

Se você tem este outro número:

123456789012

o Java tenta ler este número como um int, mas como esse número não cabe em um int, dá um erro de compilação.

Para tirar esse erro você teria de usar:

123456789012L

G

AAAAAAAAAA bom !!!
beleza !!!
agora clareou as idéias !!
aquele abraço e muito obrigado pelas respostas !

lgi2020

gremilin:
Puxa !!! que sobrenaturalidade !! hahahaha !! mto bom !!
mas ainda não me responderam o pq que o L é usado se a variavel já esta como long ?


Alguns desenvolvedores utilizam pelo simples fato de melhorar a legibilidade do código.
Por exemplo, no início do código você tem a declaração da variável…
Mas lá no final, depois de trocentas linhas de código, você já pode não se lembrar qual o tipo dela ao fazer uma atribuição.
Felizmente temos boas IDEs que nos fazem não precisar disso, mostrando os “erros em tempo de digitação”…

Outra coisa:
Quando você coloca no código fonte de sua aplicação um número com casas decimais, ele entende SEMPRE como double.
Dessa forma a declaração causa uma erro de compilação:

float meuFloat = 1.0; //não compila

Já as declarações abaixo funcionam perfeitamente:

float meuFloat = 1.0F; //Pode ser F ou f double meuDouble = 1.0; //não precisa do D (ou d), pois, como falei, o compilador entende como double.

Abraços.

davidbuzatto

O L é usado para dizer que o literal em sí é de fato e deve ser tratado como um long.

Se vc faz:

long a = 1;

Na verdade vc está atribundo um int ao long, mas como o int é menor que o long, o cast é feio implicitamente.

Além do sufixo L para long, existe o F para float e D para double. A utilidade é dizer ao desenvolvedor (e ao compilado/máquina virtual) que aquele literal (como falei acima) é de fato do tipo que o sufixo denota. Vc pode tanto usar os sufixos em maiúsculo quanto em minúsculo, mas recomenda-se usar em maiúsculo, pois o L minúsculo parece o número um:

1 = l ????

Vc precisaria usar o L caso seu literal represente um valor que não seja um int ao atribuir ao long.
Por exemplo:

// ERRO: integer number too large long t = 999999999999999999;

// OK long t = 999999999999999999L;

Até mais!

T

Essa história do “F”, “L”, “D” etc. são coisas herdadas da linguagem C.
A letra “E” que é usada para notação científica (muita gente boa não tem a menor idéia que é a notação científica e acha que é um erro porque “erro” começa com a letra “E”) é herdado do C, que em última instância copiou isso do Fortran (a mãe de todas as linguagens compiladas modernas).

bandkanone

Significa Long e seu uso é como se fizesse um cast do dado

Criado 7 de dezembro de 2007
Ultima resposta 7 de dez. de 2007
Respostas 16
Participantes 10