dentro de um main qualquer…
System.out.println(20*0.01); // funciona… output = 0.2
System.out.println(20/100); // NÃO funciona… output = 0.0
alguém sabe pq diabos isso acontece?
vlw
abs
dentro de um main qualquer…
System.out.println(20*0.01); // funciona… output = 0.2
System.out.println(20/100); // NÃO funciona… output = 0.0
alguém sabe pq diabos isso acontece?
vlw
abs
Ola,
Simples, pelas regras de conversão de tipos do java, o 20/100 é inteiro, e o resultado é menor que 1 e maior que 0, porem mais 0 que 1, então o retorno é 1… mas acho que se vc quizer o resultado real desta divisão tera que fazer assim:
System.out.print(20.0/100.0);
Só uma pequeninissima correção ao que o Bruno falou, o resultado é 0 porque uma operação entre 2 inteiros resulta em um inteiro, a parte inteira do numero, nesse caso a parte inteira é 0…
Se você fizer por exemplo:
System.out.println(25/10);
imprime 2, pois o resultado é 2.5, mas como o resultado tem que ser inteiro, o 5 vai pro espaço…
Se você escrever como o Bruno colocou aí, vai imprimir o valor correto, ou simplemente colocar um D na frente de um dos numeros:
System.out.println(20/100.0);
System.out.println(20/100D);
valeu! Não sabia desta definição já q acredito q na maioria das linguagens funciona.
coloquei 20/100.0 e funcionou tb… é q no caso o dividendo vem como argumento e divido por 100.0 por se tratar de uma porcentagem.
obrigado 
Quando o java vai realizar alguma conta… ele joga os numeros para a “caixa” melhor para se trabalhar…
quando vc colocou 20/100 tinha somente int ai ele passou para int mesmo ou long para realizar essa conta…
quando vc colocou 20/100.0 o numero 100.0 é float… assim foi colocado na “caixa” dos float é por isso que a conta funciona com o 20/100.0 e n com 20/100!!!