Divisão

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 :wink:

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 :confused:

D. Maniac,

Não tinha pensado nisso, mas realmente é uma boa idéia :smiley:

Valeu galera.
Abraços a todos.