Galera, preciso do seguinte.
20% de um número.
Eu pensei em fazer assim:
public class Teste
{
private int numero = 20;
private int total = 500;
private int teste1;
public Teste()
{
teste1 = (numero/100) * total;
}
public void mostraTodos()
{
System.out.println("Teste 1 = " + teste1 + ".");
}
}
Só que a variável teste1 recebe o valor 0. Por que isso acontece?
Já tentei fazer assim:
teste1 = (numero * 0.01) * total;
Mas ocorre possible loss of precision.
Valeu.
já reparou que está usando INT ??
É que precisava ser int mesmo.
Não tem aquelas coisas de que quando você usa int, arredonda pra um maior/menor número?
Precisava disso. Usar um cast talvez dê certo?
divisão entre inteiros retorna um inteiro
tente utilizar 100.0
Que tal
teste1 = (numero * total) /100 ;
Não precisa converter pra float ou double… é só mudar a ordem das operações, garantindo que o número que multiplica total é maior do que zero.
T+
Realmente.
pec,
Multipliquei por 0.01 e utilizei cast (int). Agora esta funcionando perfeitamente, mas vou tentar com isso que você falou. Não gosto de usar castings
D. Maniac,
Não tinha pensado nisso, mas realmente é uma boa idéia
Valeu galera.
Abraços a todos.