Saudações pessoal! Estou estudando java e estou com uma dúvida sobre como usar e para que serve os sufixos que colocam nos valores das variáveis na hora de iniciar ela.
o sufixo que digo é:
long l = 400000000000L;
Alguém por favor me ajude com essa dúvida?
Para que serve e quando usar os sufixos dos tipos primitivos?
No caso dos sufixos l, f e d, eles indicam o tipo do literal.
Por exemplo, qual o tipo do valor 100? Ele poderia ser um int, long, float, double. O compilador nesse caso vai tratar como inteiro. Mas no caso que você quiser que seja um float, basta escrever como 100f e resolvido.
Os sufixos dos tipos servem para o sistema saber como lidar de forma melhor com números com ponto flutuante. Exemplo:
float minhaVar = 5.5; => O sistema lê isso como double.
float minhaVar = 5.5f; => Agora o sistema como Float.
Agora um exemplo mais prático, na API LWGJL (legacy-2.9.3) para definir a cor de Enviroment você deve utilizar de números float para o RGB.
GL11.glSetColor(0.2, 0.2, 0.4); => Isso está errado porque o LWJGL lê isso como double!!!
GL11.glSetColor(0.2f, 0.2f, 0.4f); => Agora está certo! Não ocerrerão possiveis erros! :3
Vale lembrar que além dos tipos primitivos no java existem as classes para esse tipos, por exemplo, você declara int i = 0;, porém você pode acessar metodos estáticos de tratamento de Int’s, por exemplo:
(Eu sei, mais o código abaixo está em C# porém é facil entender como faz em java, acontece que esqueci se o Int tem o metodo parse ou nao… acho que tem ;p)
string s = "123";
int i = null;
try {
i = Int.parse(s);
} catch (Exception ex){}
Console.WriteLine(i);
Na verdade, é para a JVM saber como lidará com os valores que estão sendo utilizados, tendo em vista que nem todos os sufixos se referem à pontos flutuantes
@Luis_Augusto_Santos, agora tenta dividir isso por 3 e.e, vc vai ter um baita ponto flutuante e eu quis dizer a JVM quando me referia a palavra “sistema” :3 Vc está certo tb.
[quote=“Mint, post:6, topic:346638”]
agora tenta dividir isso por 3 e.e, vc vai ter um baita ponto flutuante
[/quote]Isso se aplica se e somente se for necessário realizar divisão, senão a JVM ignora?